python实现PDF中表格转化为Excel的方法

以下是详细讲解如何用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技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 教你用 Python 发送告警通知到微信的操作过程

    在Python中,我们可以使用企业微信提供的API来发送告警通知到微信。下面是Python发送告警通知到微信的操作过程: 1. 获取企业微信的API密钥 在使用企业微信API发送消息之前,我们需要先获取企业微信的API密钥。我们可以在企业微信管理后台中创建一个应用,并获取应用的corpid、corpsecret和agentid。这些信息将用于后续的API调用…

    python 2023年5月14日
    00
  • python中pip的安装与使用教程

    下面是 Python 中 pip 的安装与使用教程的完整攻略。 安装 pip 首先确认你已经安装了 Python。在命令行输入以下命令查看 Python 版本: python –version 如果显示版本号,则说明你已经安装了 Python。如果没有,则需要先安装 Python。 下载 pip 安装脚本。可以在官方网站下载(https://bootstr…

    python 2023年5月14日
    00
  • Python异常的检测和处理方法

    Python异常的检测和处理方法 简介 在 Python 编程中,可能会出现各种各样的异常,比如变量未定义、文件不存在、网络连接失败等等。如果不处理异常,程序会直接崩溃,给用户使用带来不便,甚至还会导致数据丢失和安全隐患等。 为了更好的保护程序,Python 引入了异常处理机制,使程序能够自动检测异常并做出相应处理。本文将详细讲解 Python 异常的检测和…

    python 2023年5月13日
    00
  • 浅析Python 引号、注释、字符串

    在本攻略中,我们将浅析Python引号、注释、字符串。这些是Python编程中非常基础的概念,但也是非常重要的。 引号 在Python中,字符串可以使用单引号、双引号或三引号来表示。以下是一个示例代码,演示了如何使用不同类型的引号来表示字符串: # 使用单引号表示字符串 str1 = ‘Hello, World!’ print(str1) # 使用双引号表示…

    python 2023年5月15日
    00
  • Python中如何给字典设置默认值

    给字典设置默认值在Python中是一种很常见的操作。如果一个字典没有某一个键,则会出现KeyError的错误。但是,我们可以设置默认值,这样,如果字典没有某个键,则会返回我们设置的默认值。下面介绍两种方法。 方法1:使用dict.setdefault方法 dict.setdefault方法可以设置字典的默认值,其函数定义如下: dict.setdefault…

    python 2023年5月13日
    00
  • python 自定义异常和异常捕捉的方法

    Python 自定义异常和异常捕捉的方法 什么是异常? Python 中,如果程序出现了错误,就会抛出异常(Exception)。 异常可以分为标准异常和自定义异常: 标准异常:是 Python 内置的异常。 自定义异常:是开发者根据业务需求自行定义的异常。 Python 中常见的标准异常包括: 异常名称 描述 BaseException 所有异常的基类 E…

    python 2023年5月13日
    00
  • 跟老齐学Python之有容乃大的list(3)

    以下是“跟老齐学Python之有容乃大的list(3)”的完整攻略。 1. 列表的排序 在Python中,我们可以使用sort()方法对列表进行排序。sort()方法可以按照升序或降序对列表进行排序。以下是sort()方法的语法: list.sort(key=None, reverse=False) 其中,key是用于排序的函数,reverse是一个布尔值,…

    python 2023年5月13日
    00
  • 《流畅的Python》第二版上市了,值得入手么?

    《Fluent Python》第一版在 2015 年出版,简体中文版《流畅的Python》在 2017 年出版。从那时起,它就成为了所有 Python 程序员的必读之书。如果一份面向中高级 Python 开发者的书单里不包含这本书,那这份书单肯定不合格! 《Fluent Python》第二版在 2022 年出版,最近,简体中文版《流畅的Python》也隆重上…

    python 2023年4月30日
    00
合作推广
合作推广
分享本页
返回顶部