Documents and knowledge · Edition No. 51 · 15 Oct 2026

camelot-dev/camelot

Extracts tables from PDFs as pandas data, scores how accurate each one is, and exports to CSV, Excel or SQLite.

← Documents and knowledgeRead the whole edition →
Camelot: tables out of PDF files. Extracts tables from PDF files as data.

3,842 stars · MIT, from the repository sidebar; the docs theme carries a separate BSD-like licence · 2.0.0 (2026-06-04), settled on pypi.org/project/camelot-py/ because the repository shows no GitHub releases; ungh pushedAt 2026-10-14T11:10:02Z · Track this in Scout

Extracts tables from PDFs as pandas data, scores how accurate each one is, and exports to CSV, Excel or SQLite.

▶Repo detailsthe review · specs · pros & cons · install

What it does

You point it at a PDF, as a file path, a web address, or raw bytes. Each table comes back as a pandas table, and can be written out as CSV, JSON, Excel, HTML, Markdown or a SQLite database. Five different parsers are available, and it can choose one per page by itself. The default reads the ruled lines a PDF draws. A second reads tables that have no lines, using the spacing between words. Two more handle borderless tables by looking at how text lines up. The fifth uses a trained model for the hard cases, including scanned pages when optical character recognition is added. For every table it reports an accuracy figure, a whitespace figure and a confidence score, and there is a filter that drops the weak ones so a bad table does not quietly enter your data. A helper joins a table that runs across several pages. There is a command-line interface as well as the library. The newest release is 2.0.0, from 4 June 2026, and code landed on 14 October 2026. What the ordinary parsers cannot do is read a scan: they need a PDF that already contains text, and a page of pixels needs the model parser plus optical character recognition, which pull in PyTorch.

Why it matters

Who it suits. Anyone whose data arrives as PDFs from somebody who will not send a spreadsheet: bank statements, regulatory filings, price lists, published reports. The confidence score is the feature that matters most, because the real risk with this kind of tool is not failing, it is succeeding wrongly and saying nothing. Skip it if the PDFs you handle are scans, unless you are willing to install the machine-learning extras, which are a much heavier dependency.

Verdict. Twenty minutes to find out whether your particular PDFs work, and that test is the whole decision. Table extraction is an area where general claims mean little and your own documents mean everything, so run it on five real files before planning anything around it. Two notes. The plain install needs no system packages at all now, which was not true of older versions and is a real improvement. And the model parser only finds the shape of the table — the words still come from the text layer or from optical character recognition, so a bad scan stays bad. jsvine/pdfplumber at 10,700 stars is the one to prefer when you need more than tables: it reports the exact position of every character and line, and it can draw what it thinks it found so a wrong answer can be debugged; Edition 47 covered it. chezou/tabula-py at 2,300 stars wraps the long-established Java tool of the same name, which sometimes succeeds where both of the others fail, at the cost of needing Java installed.

Stars3,842
LicenceMIT, from the repository sidebar; the docs theme carries a separate BSD-like licence
Latest2.0.0 (2026-06-04), settled on pypi.org/project/camelot-py/ because the repository shows no GitHub releases; ungh pushedAt 2026-10-14T11:10:02Z
Good
  • Five parsers and automatic selection, so ruled tables and borderless tables are both handled.
  • An accuracy and confidence figure for every table, with a filter that discards the weak ones.
  • The plain install needs no system packages, and exports go straight to CSV, Excel or SQLite.
Watch for
  • The ordinary parsers need a PDF containing real text, so scans need the heavy model and OCR extras.
  • The model parser finds only the table's shape, so the words are still only as good as the text layer.
  • Nothing here repairs a badly built PDF, and results vary enough that your own files are the only real test.
Similar repositories
  • jsvine/pdfplumber

    Reports the position of every character and line as well as tables, and can draw what it detected, at 10,700 stars, under an MIT licence; Edition 47 covered it.

    Track this in Scout
  • chezou/tabula-py

    A Python wrapper around the long-established Java table extractor, at 2,300 stars, under an MIT licence; it needs Java installed.

    Track this in Scout
Install
pip install "camelot-py"

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.