打开pdf并阅读带有python pandas的表格

时间:2014-04-25 05:24:15

标签: python pdf pandas

是否可以打开PDF并使用python pandas读取它或者我是否必须使用pandas剪贴板来实现此功能?

7 个答案:

答案 0 :(得分:5)

如果是一次性的,您可以将PDF表格中的数据复制到文本文件中,格式化(使用搜索和替换,Notepad ++宏,脚本),将其另存为CSV文件和加载到熊猫。

如果您需要以可扩展的方式执行此操作,可以尝试使用此产品:http://tabula.technology/。我还没有使用它,所以我不知道它有多好用,但如果你需要它你可以探索它。

答案 1 :(得分:3)

这是不可能的。 PDF是用于打印的数据格式。因此表结构丢失了。幸运的话,您可以使用 pypdf 提取文本并猜测前表格列。

答案 2 :(得分:2)

你可以使用tabula https://blog.chezo.uno/tabula-py-extract-table-from-pdf-into-python-dataframe-6c7acfa5f302

from tabula import read_pdf
df = read_pdf('data.pdf')

我可以在链接中看到更多内容!

答案 3 :(得分:1)

从PDF复制表格数据并粘贴到Excel文件中(通常将其粘贴为单个而不是多个列)。然后使用FlashFill(Excel 2016中提供,不确定早期的Excel版本)将数据分成最初在PDF中查看的列。这个过程快速而简单。然后使用Pandas来处理Excel数据。

答案 4 :(得分:0)

我一直在使用 Camelot https://camelot-py.readthedocs.io/en/master/)进行一些测试,在许多情况下它都非常有效。如果默认参数不起作用,您可以尝试调整一些参数。

它与 Tabula 类似,但是它使用不同的算法(Tabula使用PDF中的矢量数据并对表格的行进行栅格化; Camelot使用Hough变换),因此您可以尝试同时查找最好的一个。

两者都具有网络版本,因此您可以尝试使用一些示例来确定哪个是最适合您的应用程序。

答案 5 :(得分:0)

tabula的{​​{1}}新版本

tabula-py

pip install tabula-py 方法的工作方式与旧版本相同,文档位于此处: https://pypi.org/project/tabula-py/

答案 6 :(得分:-1)

当我这样做时

from tabula import read_pdf
import pandas as pd
df = read_pdf('C:\\Users\\sreeraj.va\\Desktop\\kkrvspnj.pdf')
df.shape
>> (68, 10)

但我的df是(20000,10)的形状,在笔记本中它只显示第一页的形状。为什么这样?