
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Camelot is a Python library that can help you extract tables from PDFs.
Extract tables from PDFs in just a few lines of code:
Try it yourself in our interactive quickstart notebook.
Or check out a simple example using this pdf.
>>> import camelot >>> tables = camelot.read_pdf('foo.pdf') >>> tables <TableList n=1> >>> tables.export('foo.csv', f='csv', compress=True) # json, excel, html, markdown, sqlite >>> tables[0] <Table shape=(7, 7)> >>> tables[0].parsing_report { 'accuracy': 99.02, 'whitespace': 12.24, 'order': 1, 'page': 1 } >>> tables[0].to_csv('foo.csv') # to_json, to_excel, to_html, to_markdown, to_sqlite >>> tables[0].df # get a pandas DataFrame!
Cycle Name | KI (1/km) | Distance (mi) | Percent Fuel Savings | |||
---|---|---|---|---|---|---|
Improved Speed | Decreased Accel | Eliminate Stops | Decreased Idle | |||
2012_2 | 3.30 | 1.3 | 5.9% | 9.5% | 29.2% | 17.4% |
2145_1 | 0.68 | 11.2 | 2.4% | 0.1% | 9.5% | 2.7% |
4234_1 | 0.59 | 58.7 | 8.5% | 1.3% | 8.5% | 3.3% |
2032_2 | 0.17 | 57.8 | 21.7% | 0.3% | 2.7% | 1.2% |
4171_1 | 0.07 | 173.9 | 58.1% | 1.6% | 2.1% | 0.5% |
Camelot also comes packaged with a command-line interface!
Refer to the QuickStart Guide to quickly get started with Camelot, extract tables from PDFs and explore some basic options.
Tip: Visit the parser-comparison-notebook
to get an overview of all the packed parsers and their features.
Note: Camelot only works with text-based PDFs and not scanned documents. (As Tabula explains, "If you can click and drag to select text in your table in a PDF viewer, then your PDF is text-based".)
You can check out some frequently asked questions here.
See comparison with similar libraries and tools.
The easiest way to install Camelot is with conda, which is a package manager and environment management system for the Anaconda distribution.
conda install -c conda-forge camelot-py
After installing the dependencies (tk and ghostscript), you can also just use pip to install Camelot:
pip install "camelot-py[base]"
After installing the dependencies, clone the repo using:
git clone https://github.com/camelot-dev/camelot.git
and install using pip:
cd camelot
pip install "."
The documentation is available at http://camelot-py.readthedocs.io/.
The Contributor's Guide has detailed information about contributing issues, documentation, code, and tests.
Camelot uses Semantic Versioning. For the available versions, see the tags on this repository. For the changelog, you can check out the releases page.
This project is licensed under the MIT License, see the LICENSE file for details.
FAQs
PDF Table Extraction for Humans.
We found that camelot-py demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.