Camelot:为人类设计的PDF表格提取工具
Camelot是一个可以帮助您从PDF中提取表格的Python库!
**注意:**您还可以查看Excalibur,这是Camelot的Web界面!
**以下是如何从PDF中提取表格的方法。**您可以在这里查看本例中使用的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 # 获取pandas DataFrame!
循环名称 | KI (1/km) | 距离 (英里) | 燃料节省百分比 | |||
---|---|---|---|---|---|---|
改善速度 | 减少加速 | 消除停车 | 减少空转 | |||
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还附带了一个命令行界面!
**注意:**Camelot仅适用于基于文本的PDF,不适用于扫描文档。(正如Tabula解释的那样,"如果您可以在PDF查看器中点击并拖动选择表格中的文本,那么您的PDF是基于文本的"。)
您可以在这里查看一些常见问题。
为什么选择Camelot?
- 可配置性:Camelot通过可调节的设置让您可以控制表格提取过程。
- 指标:您可以根据准确性和空白等指标丢弃不良表格,而无需手动查看每个表格。
- 输出:每个表格都被提取到一个pandas DataFrame中,可以无缝集成到ETL和数据分析工作流程中。您还可以将表格导出为多种格式,包括CSV、JSON、Excel、HTML、Markdown和Sqlite。
查看与类似库和工具的比较。
支持开发
如果Camelot对您有所帮助,请考虑在OpenCollective上进行一次性或每月捐赠来支持其开发。
安装
使用conda
安装Camelot的最简单方法是使用conda,这是Anaconda发行版的包管理器和环境管理系统。
$ conda install -c conda-forge camelot-py
使用pip
在安装依赖项(tk和ghostscript)后,您也可以直接使用pip安装Camelot:
$ pip install "camelot-py[base]"
从源代码
在安装依赖项后,使用以下命令克隆仓库:
$ git clone https://www.github.com/camelot-dev/camelot
然后使用pip安装Camelot:
$ cd camelot $ pip install ".[base]"
文档
文档可在http://camelot-py.readthedocs.io/查看。
封装器
- camelot-php为Camelot提供了一个PHP封装器。
贡献
贡献者指南中有关于贡献问题、文档、代码和测试的详细信息。
版本控制
Camelot使用语义版本控制。有关可用版本,请参阅此仓库的标签。有关更新日志,您可以查看HISTORY.md。
许可证
本项目采用MIT许可证,详情请参阅LICENSE文件。