Python 读取dpf表格的内容
主要是读取一些api接口的文档数据。
下面介绍一下几种情况
1、表格的起始位置并非在每页的首行或者最后一行
我们只需要红框中的数据
import pdfplumber import pandas as pd import numpy as np #%% 申请司南 # 创建仅有表头的 dataframe 数组 pdf_df = pd.DataFrame(columns=['字段', '类型', '描述']) # 获取 pdf 文件对象 pdf_mt = pdfplumber.open("xxx.pdf") # 因为我需要获取的资产负债表在 51-53页 但是索引从0开始 所以切片取 50-52即可 for i in range(2,7): print(i) if i==2: pdf_pg =[pdf_mt.pages[i].extract_tables()[-1][7:]] elif i==7: pdf_pg = [pdf_mt.pages[i].extract_tables()[0]] else: pdf_pg = pdf_mt.pages[i].extract_tables() pdf_df = pdf_df.append(pd.DataFrame(np.array(pdf_pg[0]),columns=['字段', '类型', '描述'])) pdf_df.to_excel('xxxx.xlsx')
我的代码是在Spyder上面跑的,看着有些字段显示有点问题,但是导到Excel是没有问题的
2、表格中存在合并单元格的
导入时数据变成这样
下面这样处理
pdf_df = pd.DataFrame(columns=['变量名', '输出值', '原始值区间范围(金额区间单位:元)']) # 获取 pdf 文件对象 pdf_mt = pdfplumber.open("xxx.pdf") # 因为我需要获取的资产负债表在 51-53页 但是索引从0开始 所以切片取 50-52即可 l=[] for i in range(29,60): print(i) if i==29: pdf_pg =[pdf_mt.pages[i].extract_tables()[-1][1:]] else: pdf_pg = pdf_mt.pages[i].extract_tables() for i in pdf_pg[0]: if i[0]!=None: l.append(i[0]) elif i[0]==None: i[0] = l[-1] pdf_df = pdf_df.append(pd.DataFrame(np.array(pdf_pg[0]),columns=['变量名', '输出值', '原始值区间范围(金额区间单位:元)'])) pdf_df.to_excel('xxx.xlsx')
就这样了。。。。。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-08-10 机器学习算法(一): 基于逻辑回归的分类预测
2020-08-10 numpy.diff()函数,后一个元素减前面的一个元素