首页 > 解决方案 > 从 PDF 每一页的表格中提取数据,并将所有数据附加到一个数据框中?

问题描述

我有一个包含几页的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}')

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

标签: pythonpdf

解决方案


想出了如何做到这一点。快到了,只需要查看 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')

推荐阅读