python - 从 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}')
我一直在试图弄清楚如何在这个循环中连接每个数据帧,而不是仅仅将它们打印出来,并且希望得到任何帮助。谢谢!
解决方案
想出了如何做到这一点。快到了,只需要查看 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')
推荐阅读
- rest - 从 Jira REST API 获取所有工作日志
- java - 无法从第一次获取 Firestore 中存在的文档
- reactjs - 测试反应组件中的循环条件
- tensorflow - Keras / Tensorflow:“您必须使用 dtype float 和 shape [?, 600, 451, 3] 为占位符张量 'input_1' 提供一个值”
- ios - 将 iPhone X 屏幕截图上传到 App Store Connect 会阻止 5.5 英寸屏幕截图在 App Store 中显示吗?
- c++ - 如何控制翻译单元之间对象的静态依赖关系?
- php - 为什么我的循环内的查询非常慢
- bash - 使用 Do-While 循环时打印唯一值
- c# - 如何使用 Entity Framework Core 2.1 定义多字段索引
- node.js - Heroku Discord Bot 离线