Skip to main content

PDF Table Extraction for Humans.

Project description

pypdf_table_extraction (Camelot): PDF Table Extraction for Humans

tests Documentation Status codecov.io image image image

pypdf_table_extraction Formerly known as Camelot is a Python library that can help you extract tables from PDFs!


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%

pypdf_table_extraction also comes packaged with a command-line interface!

Refer to the QuickStart Guide to quickly get started with pypdf_table_extraction, extract tables from PDFs and explore some basic options.

Note: pypdf_table_extraction 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.

Why pypdf_table_extraction?

  • Configurability: pypdf_table_extraction gives you control over the table extraction process with tweakable settings.
  • Metrics: You can discard bad tables based on metrics like accuracy and whitespace, without having to manually look at each table.
  • Output: Each table is extracted into a pandas DataFrame, which seamlessly integrates into ETL and data analysis workflows. You can also export tables to multiple formats, which include CSV, JSON, Excel, HTML, Markdown, and Sqlite.

See comparison with similar libraries and tools.

Installation

Using conda

The easiest way to install pypdf_table_extraction is with conda, which is a package manager and environment management system for the Anaconda distribution.

conda install -c conda-forge pypdf-table-extraction

Using pip

After installing the dependencies (tk and ghostscript), you can also just use pip to install pypdf_table_extraction:

pip install pypdf-table-extraction[base]

From the source code

After installing the dependencies, clone the repo using:

git clone https://github.com/py-pdf/pypdf_table_extraction.git

and install using pip:

cd camelot
pip install ".[base]"

Documentation

The documentation is available at http://pypdf-table-extraction.readthedocs.io/.

Wrappers

Related projects

  • camelot-sharp provides a C sharp implementation of pypdf_table_extraction (Camelot).

Contributing

The Contributor's Guide has detailed information about contributing issues, documentation, code, and tests.

Versioning

pypdf_table_extraction uses Semantic Versioning. For the available versions, see the tags on this repository. For the changelog, you can check out the releases page.

License

This project is licensed under the MIT License, see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypdf_table_extraction-0.0.2.tar.gz (36.1 kB view details)

Uploaded Source

Built Distribution

pypdf_table_extraction-0.0.2-py3-none-any.whl (46.0 kB view details)

Uploaded Python 3

File details

Details for the file pypdf_table_extraction-0.0.2.tar.gz.

File metadata

File hashes

Hashes for pypdf_table_extraction-0.0.2.tar.gz
Algorithm Hash digest
SHA256 a8e1c56fb7c239a5237f53c247fb292e7da0b39acff4b7ca9309e0033110888a
MD5 919ea580a024b520677875f6ee6ddbd6
BLAKE2b-256 e403425181d49c11ce681f5ca261648b5236e9a1d35e9492503ea163d7027ead

See more details on using hashes here.

File details

Details for the file pypdf_table_extraction-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pypdf_table_extraction-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 00a8c5f757c3445b425ed6b2c0ca5ec9af1beb73a66e2e0e31a2703b81c86e50
MD5 d6f305951d8a12703472a87b3a70e260
BLAKE2b-256 3bdad0652c86d3a91effa7a600576db967bcb13c57a7140846145ae1e9fae3c8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page