加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

Python新器材:用三行代码提取PDF表格数据

发布时间:2019-10-10 04:29:17 所属栏目:移动互联 来源:一鸣
导读:从 PDF 表格中获取数据是一项疾苦的事变。不久前,一位开拓者提供了一个名为 Camelot 的器材,行使三行代码就能从 PDF 文件中提取表格数据。 PDF 文件是一种非经常用的文件名目,凡是用于正式的电子版文件。它可以或许很好的将差异的排版名目牢靠下来,形成版

Python新器材:用三行代码提取PDF表格数据

从 PDF 表格中获取数据是一项疾苦的事变。不久前,一位开拓者提供了一个名为 Camelot 的器材,行使三行代码就能从 PDF 文件中提取表格数据。

PDF 文件是一种非经常用的文件名目,凡是用于正式的电子版文件。它可以或许很好的将差异的排版名目牢靠下来,形成版面清楚且雅观的展示结果。然而,对付想要从 PDF 中提守信息的人们来说,PDF 是个恶梦,尤其是表格。

大量的学术陈诉、论文、说明文章都行使 PDF 展示个中的表格数据,可是对付假如想要直接从表格中复制数据则会很是贫困。不久前,有一位开拓者提供了一个可从笔墨 PDF 中提取表格信息的器材——Camelot,可以或许直接将大部门表格转换为 Pandas 的 Dataframe。

  • 项目地点:https://github.com/camelot-dev/camelot

Camelot 是什么

据项目先容称,Camelot 是一个 Python 器材,用于将 PDF 文件中的表格数据提取出来。

详细而言,用户可以像行使 Pandas 那样打开 PDF 文件,然后操作这个器材提取表格数据,最后再指定输出的情势(如 csv 文件)。

代码示例

项目提供的 PDF 文件如图所示,假设用户必要提取这些笔墨之间的表格 2-1 中的信息。

Python新器材:用三行代码提取PDF表格数据

PDF 文件。我们必要提取表格 2-1。

行使 Camelot 提取表格数据的代码如下:

  1. >>> import camelot 
  2. >>> tables = camelot.read_pdf('foo.pdf') #相同于Pandas打开CSV文件的情势 
  3. >>> tables[0].df # get a pandas DataFrame! 
  4. >>> tables.export('foo.csv', f='csv', compress=True) # json, excel, html, sqlite,可指定输格外式 
  5. >>> tables[0].to_csv('foo.csv') # to_json, to_excel, to_html, to_sqlite, 导出数据为文件 
  6. >>> tables 
  7. <TableList n=1> 
  8. >>> tables[0] 
  9. <Table shape=(7, 7)> # 得到输出的名目 
  10. >>> tables[0].parsing_report 
  11.  'accuracy': 99.02, 
  12.  'whitespace': 12.24, 
  13.  'order': 1, 
  14.  'page': 1 

以下为输出的功效,对付归并的单位格,Camelot 在抽取后做了空行处理赏罚,这是一个稳妥的要领。

Python新器材:用三行代码提取PDF表格数据

安装要领

项目作者提供了三种安装要领。起首,你可以行使 Conda 举办安装,这是最简朴的。

  1. conda install -c conda-forge camelot-py 

最风行的安装要领是行使 pip 安装。

  1. pip install camelot-py[cv] 

还可以从项目中克隆代码,并行使源码安装。

  1. git clone https://www.github.com/camelot-dev/camelot 
  2. cd camelot 
  3. pip install ".[cv]" 

【编辑保举】

  1. 用Python说明国庆旅游景点,汇报你哪些处所好玩、自制、人又少
  2. 四年完成400万行Python代码搜查,乃至随手写了个编译器
  3. Python 从入门到能干:一个月就够了!
  4. Python 带你来一次说走就走的举世观光
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读