【问题标题】:Pulling data from table on each page of PDF, and appending all together into one dataframe?从 PDF 每一页的表格中提取数据,并将所有数据附加到一个数据框中?
【发布时间】:2020-08-30 05:27:36
【问题描述】:

我有一个包含几页的 pdf,我想从每一页中提取数据并将它们全部连接到一个数据框中。我已经设法挖掘 Stack 和其他资源以创建以下代码,该代码成功地从每一页中提取并打印表格作为数据帧。但是,下一步是逐行连接这些单独的数据帧(这样它是一个数据帧,而不是几个单独的数据帧)。

import pdfplumber
import pandas as pd

pdf_file = "df.pdf"
tables=[]
with pdfplumber.open(pdf_file) as pdf:
    pages = pdf.pages
    for i,pg in enumerate(pages):
        tbl = pages[i].extract_table()
        df = pd.DataFrame(tbl)
        print(f'{df}')

我一直在试图弄清楚如何在这个循环中连接每个数据帧,而不是仅仅将它们打印出来,并且希望得到任何帮助。谢谢!

【问题讨论】:

  • 我不确定您的问题是什么 - 您在编写代码时是否遇到了特定问题?在这种情况下,最好显示这些问题。不幸的是,这听起来像是您在要求其他人为您编写代码; Stack Overflow 不是代码编写服务,因此在这种情况下,建议您进行研究并编写代码,然后在遇到困难时提出具体问题。

标签: python pdf


【解决方案1】:

想出了如何做到这一点。快到了,只需要查看 Stack 以找出如何附加 for 循环。谢谢。

import pdfplumber
import pandas as pd

#Create df from table on first page to act as the first df:
pdf_file = "data.pdf"
pdf = pdfplumber.open(pdf_file)
pages = pdf.pages
tbl = pages[0].extract_table()
original_df = pd.DataFrame(tbl,columns=["category",0])

#Append data from remaining tables/pages:
tables=[]
with pdfplumber.open(pdf_file) as pdf:
    pages = pdf.pages
    for i,pg in enumerate(pages):
        tbl = pages[i].extract_table()
        df = pd.DataFrame(tbl,columns=["category",i+1])
        original_df = original_df.merge(df,on='category')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    相关资源
    最近更新 更多