以下是详细讲解如何用Python将PDF中的表格转换为Excel的完整实例教程。
教程概述
本教程将介绍如何使用Python和一些相关的库,将PDF中的表格转换为Excel文件。主要使用了以下库:
- tabula-py:用于提取PDF中的表格数据。
- pandas:用于将提取的表格数据转换为Excel文件。
步骤说明
在开始这个实例之前,请确保你已经按照以下步骤安装好了必要的库:tabula-py、pandas、numpy、PyPDF2。
第一步:准备工作
首先,从在线PDF文件或本地计算机上的PDF文件中获取表格数据。如果从在线PDF文件中获取表格数据,则需要使用requests库下载PDF文件。如果是从本地计算机上的PDF文件中获取表格数据,则需要提供PDF文件的路径。
例如,我们可以使用以下代码从本地计算机上的PDF文件中获取表格数据:
import tabula
# 设置表格在PDF文件中的位置和页面范围
table_area = [252.875, 104.875, 532.875, 684.1]
pages = 1
# 读取PDF文件中的内容到dataframe
df = tabula.read_pdf('example.pdf', pages=pages, area=table_area)[0]
print(df)
在这个实例中,我们首先使用tabula.read_pdf()函数读取文件,设置了表格所在的位置和页面范围,并且指定读取PDF文件的第1页。在这个特定的例子中,表格的位置被指定为tabula.read_pdf()函数中的table_area,该位置是通过测量PDF文档的像素坐标得出的。
第二步:转换为Excel
接下来,我们可以使用pandas库将表格数据转换为Excel文件。
以下是一个示例代码,将前面读取的表格数据保存到Excel文件中:
import pandas as pd
# 将表格数据转换为Excel文件
df.to_excel('example.xlsx',index=False,header=True)
在上面的代码中,我们使用pandas.DataFrame.to_excel()方法将表格数据保存为Excel文件。其中,参数index和header用于控制保存到Excel文件中的数据是否包括索引和标题。
第三步:完整代码
综上所述,以下是一个完整的实例代码,可以将PDF文件中的表格数据提取出来并保存为Excel文件:
import tabula
import pandas as pd
# 设置表格在PDF文件中的位置和页面范围
table_area = [252.875, 104.875, 532.875, 684.1]
pages = 1
# 读取PDF文件中的内容到dataframe
df = tabula.read_pdf('example.pdf', pages=pages, area=table_area)[0]
# 将表格数据转换为Excel文件
df.to_excel('example.xlsx',index=False,header=True)
第四步:实例说明
以下是两个示例说明:
示例一:从在线PDF网站中提取表格数据
假设我们想从https://www.worldometers.info/coronavirus/country/us/网站中提取美国各州对疫情的数据。我们可以使用以下代码:
import requests
import tabula
import pandas as pd
# 获取PDF文件
url = 'https://www.worldometers.info/coronavirus/wp-content/uploads/sites/2/2021/10/ALL-states-causes-of-death-per-day.pdf'
response = requests.get(url)
# 读取PDF文件中的内容到dataframe
df = tabula.read_pdf(response.content,pages='all',multiple_tables=True)[-1]
# 将表格数据转换为Excel文件
df.to_excel('covid_death.xlsx',index=False,header=True)
在这个代码中,我们首先使用requests库从网络上获取PDF文件,然后使用tabula-py库从获取的PDF内容中提取表格数据。注意,在这里我们使用multiple_tables = True参数来指示tabula-py库处理单个PDF文件中的多个表格,因为在这个PDF文件中包含很多表格。最后,我们将提取的表格数据转换为Excel文件。
示例二:在PDF中寻找表格坐标
PDF文件中的表格数据可以是任意位置的,所以我们需要一种方法来确定表格在PDF文件中的确切位置。一种简单的方法是使用PDF浏览器进行查看,并使用像Adobe Acrobat这样的应用程序来标记表格的坐标。然后,我们可以使用测量工具来获取表格上的坐标位置,并在Python代码中使用这些坐标位置。
例如,我们可以使用以下代码从本地计算机上的PDF文件中获取表格数据:
import tabula
# 设置表格在PDF文件中的位置
table_area = [81.535, 107.587, 573.328, 695.667]
pages = 1
# 读取PDF文件中的内容到dataframe
df = tabula.read_pdf('example.pdf', pages=pages, area=table_area)[0]
print(df)
在这个实例中,我们使用tabula.read_pdf()函数读取文件,设置了表格所在的位置,在这个例子中,表格的位置被指定为tabula.read_pdf()函数中的table_area。表格的位置是以PDF文档像素坐标的形式输入的。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现PDF中表格转化为Excel的方法 - Python技术站