返回
从 PDF 中批量提取表格数据并导出到 Excel
见解分享
2023-12-25 06:57:44
用 Python 批量从 PDF 中提取表格数据
摘要
PDF(便携式文档格式)是一种广泛使用的文件格式,但从中提取数据可能是一项繁琐的任务。本博客将介绍如何使用 Python 语言批量提取 PDF 表格数据,并将其保存到 Excel 文件中。
准备工作
在开始之前,你需要安装以下软件:
- Python 3.6 或更高版本
- Tabula-Py 库
- Pandas 库
可以通过以下命令安装这些库:
pip install tabula-py
pip install pandas
代码实现
导入库
import tabula
import pandas as pd
遍历 PDF 文件
使用 os.listdir()
函数获取当前目录中的所有 PDF 文件:
import os
pdf_files = os.listdir('.')
for pdf_file in pdf_files:
if pdf_file.endswith('.pdf'):
# 提取数据
data = tabula.read_pdf(pdf_file, pages='all')
# 创建 DataFrame
df = pd.DataFrame()
for page in data:
df = pd.concat([df, page], ignore_index=True)
保存到 Excel 文件
使用 Pandas 的 to_excel()
方法将 DataFrame 导出到 Excel 文件:
df.to_excel('extracted_data.xlsx', index=False)
完整代码
将以上代码片段组合成一个完整的 Python 脚本:
import os
import tabula
import pandas as pd
pdf_files = os.listdir('.')
for pdf_file in pdf_files:
if pdf_file.endswith('.pdf'):
data = tabula.read_pdf(pdf_file, pages='all')
df = pd.DataFrame()
for page in data:
df = pd.concat([df, page], ignore_index=True)
df.to_excel('extracted_data.xlsx', index=False)
用法
将此脚本保存在一个名为 extract_pdf_tables.py
的文件中,并在命令提示符下运行以下命令:
python extract_pdf_tables.py
脚本将遍历当前目录中的所有 PDF 文件,提取表格数据并将其保存到名为 extracted_data.xlsx
的 Excel 文件中。
常见问题解答
Q1:我可以在没有 Tabula-Py 库的情况下使用其他库来提取表格数据吗?
A1: 是的,你可以使用其他库,例如 camelot
和 pdfplumber
。
Q2:我如何处理具有多个页面的 PDF 文件?
A2: 你可以使用 pages='all'
参数来提取所有页面的数据。
Q3:如何处理嵌套表格?
A3: Tabula-Py 库目前不支持嵌套表格的提取。
Q4:提取的数据在 Excel 文件中的格式如何?
A4: 数据将以表格形式保存,其中每行代表 PDF 表格中的一行,每列代表一列。
Q5:我可以使用此方法提取非结构化表格数据吗?
A5: 不,此方法仅适用于结构化表格数据。