【问题标题】:Opening a pdf and reading in tables with python pandas使用 python pandas 打开 pdf 并在表格中阅读
【发布时间】:2014-06-10 16:11:19
【问题描述】:

是否可以使用 python pandas 打开 PDF 并阅读它,还是我必须使用 pandas 剪贴板才能使用此功能?

【问题讨论】:

标签: python pdf pandas


【解决方案1】:

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

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

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

【讨论】:

  • 哇,它会安装一个完整的 JVM 作为依赖项。
【解决方案2】:

有一个新版本的tabula 称为tabula-py

pip install tabula-py

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

【讨论】:

    【解决方案3】:

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

    如果您需要以可扩展的方式执行此操作,您可以试试这个产品:http://tabula.technology/。还没用过,不知道效果如何,有需要的可以探索一下。

    【讨论】:

      【解决方案4】:

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

      Tabula类似,但使用了不同的算法(Tabula使用PDF中的矢量数据并栅格化表格的线条;Camelot使用Hough变换),所以你可以尝试两者找到最好的。

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        • 如何使用pd.read_clipboard() 并手动复制它?桌子能用吗?我只是不喜欢手动在 pdf 中手动输入所有内容
        • @ccsv: 谁填满了剪贴板?这个程序要猜测表的结构,同样的问题
        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

          我使用 Tabula 库 安装,通过:

          pip install tabula-py

          通过链接读取PDF中的几个表格,例如:

          import tabula
          df = tabula.io.read_pdf(url, pages='all')
          

          然后你会得到很多表,你可以使用索引来调用它,就像从列表中打印元素一样,示例:

          # ex
          df[0]
          

          更多信息在这里 - https://pypi.org/project/tabula-py/

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-05-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多