Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Camelot | 1,873 | 9 days ago | 204 | mit | Python | |||||
A Python library to extract tabular data from PDFs | ||||||||||
Excalibur | 1,226 | 3 months ago | 100 | mit | HTML | |||||
A web interface to extract tabular data from PDFs | ||||||||||
Npm Pdfreader | 474 | 29 | 19 | 9 days ago | 48 | April 23, 2022 | 2 | mit | HTML | |
🚜 Parse text and tables from PDF files. | ||||||||||
Deltapy | 411 | a year ago | 11 | April 09, 2020 | 2 | Jupyter Notebook | ||||
DeltaPy - Tabular Data Augmentation (by @firmai) | ||||||||||
Extracttable Py | 138 | 2 | 8 months ago | 27 | May 06, 2022 | 2 | apache-2.0 | Python | ||
Python library to extract tabular data from images and scanned PDFs | ||||||||||
Img2txt | 19 | 2 years ago | mit | Python | ||||||
Easy formatted text extraction from images using Google Vision API | ||||||||||
Camelot Sharp | 10 | 1 | a year ago | 1 | January 17, 2021 | mit | C# | |||
A C# library to extract tabular data from PDFs (port of camelot Python version using PdfPig). | ||||||||||
Tabularazr | 4 | 7 years ago | 11 | Jupyter Notebook | ||||||
Automatic extraction of tabular data from research papers and financial documents. | ||||||||||
Pdfgrid | 3 | 9 years ago | Java | |||||||
Camelot is a Python library that can help you extract tables from PDFs!
Note: You can also check out Excalibur, the web interface to Camelot!
Here's how you can extract tables from PDFs. You can check out the PDF used in this example here.
>>> 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!
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.
If Camelot has helped you, please consider supporting its development with a one-time or monthly donation on OpenCollective.
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://www.github.com/camelot-dev/camelot
and install Camelot using pip:
$ cd camelot $ pip install ".[base]"
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 HISTORY.md.
This project is licensed under the MIT License, see the LICENSE file for details.