LIFEHUBBER
Choose theme

AI Resources

Camelot

GitHub stars: 3.8K GitHub forks: 548 Declared license: MIT: MIT Last pushed October 30, 2026: Pushed 6d ago
Stats from GitHub

Camelot is a Python library for turning tables in PDFs into rows and columns you can inspect or export as CSV. It gives you a way to work with a table that came in a report instead of a spreadsheet.

The library has several ways to find the cells. An optional machine-learning mode detects table structure and can use OCR to read text from scans. Use this as a first read, not a recommendation. Open the original project before trusting details like terms, limits, privacy, cost, setup, or safety.

What it is

From PDF table to CSV

Camelot returns each detected table separately. You can inspect it as a pandas DataFrame, a table you can work with in Python, or export it for a spreadsheet or data pipeline.

Why it stands out

Use grid lines or gaps

Lattice uses the lines drawn between cells. Stream uses the spacing between words. That gives you a different starting point for a table with a printed grid and one whose columns are separated by blank space.

Availability

A Python package with a CLI

The package is published as camelot-py for Python 3.10 or later. It includes a Python interface and a command-line tool. The main repository lists the MIT license.

Why it matters

What makes it useful

A PDF may show this year and last year side by side. If extraction merges those columns, a search or AI system can pick up the right number and attach it to the wrong year. Seeing the extracted cells gives you a chance to catch that before you use the data.

Notable points

What stands out

If the parser picks up a sidebar along with the table, Camelot lets you specify the rectangle to analyze. The advanced guide shows how to get those coordinates from a plot of the page text. Plotting requires the optional plot dependency.

Before using

What to review

The standard parsers need a PDF with selectable text. For image-only pages, the documented route uses the optional ML and OCR dependencies together.

The optional ML mode uses Table Transformer to detect rows, columns and spanning cells. It fills those cells from the PDF text layer when available. For a scan, the OCR step supplies the text.

The installation guide flags a conflict between two OpenCV packages when setting up OCR. Check its notes for your package manager before adding the OCR dependency.

Compare the extracted cells with the PDF. Check headers that span several columns and any row where a blank cell could make a value look like it belongs under a different heading.

Reader fit

Who may find it relevant

Camelot is useful when the table is the part you want to carry forward, such as a set of figures for comparing reports or adding to a searchable collection. Start with a table whose source values you can check.

Editorial note

Why LifeHubber lists it

LifeHubber lists Camelot because Stream lets you set the column boundaries yourself. The advanced guide shows what to try if two headings still land in the same cell after you mark the divider. Stream has a text-splitting option that can separate text at that boundary, so you can check the headings again before exporting.

Source links

Source materials

Reader note

Before relying on this entry

LifeHubber lists entries to help readers inspect AI projects, not to endorse them or prove they are safe, suitable, accurate, maintained, or right for a specific use. We do not verify every entry in depth. Before relying on anything listed, review the original materials, terms, privacy practices, limits, and risks that matter for your situation.

Advertisements

Advertisements

For project maintainers

Listed here? You can use the badge.

If you maintain a project with a current LifeHubber listing, you may add the optional “Listed on LifeHubber AI Resources” badge to its README, docs, or website. No introduction or permission request is needed.

See what’s moving