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

ccs*_*csv 13 python pdf pandas

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

Mar*_*ark 9

有一个新版本tabulatabula-py

pip install tabula-py
Run Code Online (Sandbox Code Playgroud)

.read_pdf方法就像在旧版本中一样工作,文档在这里:https : //pypi.org/project/tabula-py/


jos*_*uin 6

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

它类似于Tabula,但它使用不同的算法(Tabula 使用 PDF 中的矢量数据并对表格的行进行光栅化;Camelot 使用 Hough 变换),因此您可以尝试两者以找到最佳算法。

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


Dan*_*iel 5

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

  • 使用`pd.read_clipboard()`并手动复制呢?桌子可以用吗?我只是不喜欢手动输入pdf中的所有内容 (2认同)

Mat*_*Han 5

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

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


小智 5

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

from tabula import read_pdf
df = read_pdf('data.pdf')
Run Code Online (Sandbox Code Playgroud)

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

  • 哇,它会安装一个完整的 JVM 作为依赖项。 (2认同)