【问题标题】:How to extract more than one table present in a pdf file with tabula in python?python - 如何使用python中的表格提取pdf文件中存在的多个表格?
【发布时间】:2018-04-09 12:58:43
【问题描述】:

如果 pdf 文件中只有一个表,则可以使用代码简单地提取该表

from tabula import read_pdf
df = read_pdf(r"C:\Users\Himanshu Poddar\Desktop\pdf_file.pdf")

但如果 pdf 文件中存在多个表。我无法提取这些表。因为它只提取第一个。

【问题讨论】:

    标签: python dataframe data-munging tabula


    【解决方案1】:

    那里?希望下面的代码会有所帮助,但我没有用大表测试它。让我知道是否有任何情况可能会影响此代码或导致此代码失败。我是 python 新手,所以我可以提高我的知识:)

    import os
    from tabula import wrapper
    os.chdir("E:/Documents/myPy/")
    tables = wrapper.read_pdf("MyPDF.pdf",multiple_tables=True,pages='all',encoding='utf-8',spreadsheet=True)
    
    i=1
    for table in tables:
        table.columns = table.iloc[0]
        table = table.reindex(table.index.drop(0)).reset_index(drop=True)
        table.columns.name = None
        #To write Excel
        table.to_excel('output'+str(i)+'.xlsx',header=True,index=False)
        #To write CSV
        table.to_csv('output'+str(i)+'.csv',sep='|',header=True,index=False)
        i=i+1
    

    【讨论】:

      【解决方案2】:

      即使使用 tabula-py 包装器,您也可以使用 Tabula Java Docs 中提供的所有相同选项。

      在您的情况下,您可以简单地添加 pages = "all":

      from tabula import read_pdf
      df = read_pdf(r"C:\Users\Himanshu Poddar\Desktop\pdf_file.pdf", pages ="all")
      

      【讨论】:

        【解决方案3】:

        如果您的 PDF 有多个表格,您可以使用multiple_tables=true 选项。

        【讨论】:

          【解决方案4】:

          在 read_pdf 中使用multiple_tables=true 参数将解决问题

          示例 ::

          from tabula import wrapper
          df = wrapper.read_pdf("sample.pdf",multiple_tables=True)
          

          现在 read_pdf 在包装器中,所以我们需要导入它并如上所示使用

          【讨论】:

            【解决方案5】:

            如果表格在pdf的所有页面中具有相同的结构(即具有相同的表格结构和相同的相对位置),则可以设置 pages='all' 以获得正确的结果。

            如果没有,您可能需要遍历所有页面来解析 pdf。

            documention详细解释。

            【讨论】:

              猜你喜欢
              • 2023-02-20
              • 2021-11-14
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-05-12
              • 2021-11-14
              • 2021-06-15
              相关资源
              最近更新 更多