如何提取企业年报中表格的数据?-使用camelot库

本文介绍了如何使用Python的Camelot库处理PDF文件中的单独一页和跨页表格,包括读取单页表格并保存为Excel,以及合并跨越多页的表格。展示了如何使用`read_pdf`函数和Pandas数据处理来提取和整理数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 参考资料链接:Python解析pdf表格 | Camelot库(完胜) VS Pdfplumber库

一、表格在单独一页的情况

import camelot
pdf=r"C:\Users\ziyao\Desktop\python for work\办公\work1\2018年10月全国城市空气质量报告.pdf"
table=camelot.read_pdf(pdf, pages='11')
print(table)#查看该页的表格数量
print(table[0])#查看表格的规格

df=table[0].df#将提取出的数据转换为dataframe
df.to_excel('tables.xlsx')

原文件的表格: 

 提取出来的Excel表格:

二、表格横跨多个不同页面 

考虑到篇幅过长,所以不放原表格 

import camelot
import pand
要从 PDF 年报提取表格,需要使用 Python 的一些第三方。常用的 PDF 处理有 PyPDF2、pdfminer、pdfquery、tabula-py、camelot 等。 以下是一些示例代码,演示如何使用不同的提取 PDF 年报中的表格: 1. 使用 PyPDF2 提取表格 ```python import PyPDF2 # 读取 PDF 文件 with open('annual_report.pdf', 'rb') as pdf_file: pdf_reader = PyPDF2.PdfFileReader(pdf_file) # 获取第一页 page = pdf_reader.getPage(0) # 获取表格位置 table_area = (50, 600, 550, 100) # (x, y, width, height) # 提取表格 table = page.extractTable(table_area) # 打印表格 print(table) ``` 在这个示例代码中,我们使用 PyPDF2 的 `PdfFileReader` 函数来读取 PDF 文件,并使用 `getPage` 函数获取第一页。然后我们使用 `extractTable` 函数提取表格数据,将其存储在一个二维数组中,并打印出来。 2. 使用 pdfminer 提取表格 ```python import pdfminer.high_level as pdf # 定义表格位置 table_area = [50, 600, 550, 100] # (x0, y0, x1, y1) # 提取表格 table = pdf.extract_tables('annual_report.pdf', table_settings=[table_area]) # 打印表格 print(table[0]) ``` 在这个示例代码中,我们使用 pdfminer 的 `extract_tables` 函数来提取表格数据。我们需要指定表格的位置,将其存储在一个列表中。然后我们将结果存储在一个二维数组中,并打印出来。 3. 使用 tabula-py 提取表格 ```python import tabula # 定义表格位置 table_area = [50, 600, 550, 100] # (x0, y0, x1, y1) # 提取表格 table = tabula.read_pdf('annual_report.pdf', pages='all', area=table_area) # 打印表格 print(table) ``` 在这个示例代码中,我们使用 tabula-py 的 `read_pdf` 函数来提取表格数据。我们需要指定表格的位置,将其存储在一个列表中。然后我们将结果存储在一个 pandas 数据框中,并打印出来。 以上是三种常用的方法,还有其他的和方法可以实现从 PDF 年报提取表格使用不同的和方法,我们可以根据需要提取 PDF 年报中的表格数据,以便更好地分析和处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值