基于Python快速处理PDF表格数据

作者:其实还好啦 时间:2021-04-11 23:29:54 

我们有下面一张PDF格式存储的表格,现在需要使用Python将它提取出来。

基于Python快速处理PDF表格数据

使用Python提取表格数据需要使用pdfplumber模块,打开CMD,安装代码如下:

pip install pdfplumber

安装完之后,将需要使用的模块导入

import pdfplumberimport pandas as pd

然后打开PDF文件


# 使用with语句打开pdf文件
with pdfplumber.open("D:\\python\\cai\\yq.pdf") as pdf:
 # pages[0]表示取第1页
 page = pdf.pages[0]

我们来打印输出下获取到的文本,这句语句只是帮我们验证下是否成功获取到PDF里的内容

print(page.extract_text())

执行的结果如下,看来是成功了

基于Python快速处理PDF表格数据

然后可以使用extract_table()函数获取表格,如果有多个表格,可以使用extract_tables()函数,就是多了个s

d1=page.extract_table()

执行代码后,将得到一个列表,还不是数据框

基于Python快速处理PDF表格数据

所以最后一步就是将列表转为数据框就可以了,代码如下:

df = pd.DataFrame(d1[1:], columns=d1[0])

执行代码后,将得到了df数据框

基于Python快速处理PDF表格数据

有几个注意事项要提醒下:

1.pdf表格中的数据,对于同一个数据或内容,不要有换行,如果换行,可能被识别为2个数据;

2.pdf中的表格一定要有边框,没有边框的话,否则使用extract_table()函数就无法获取表格数据,extract_text()还是可以获取文本信息的,不要问我是怎么知道的,说多了都是泪。

我们现在有一份PDF数据,里面有三页,每页都有一样数据结构但数据不同的数据表,现在需要使用Python将它批量提取出来。

基于Python快速处理PDF表格数据

基于Python快速处理PDF表格数据

基于Python快速处理PDF表格数据

有了上回经验,我们就直接上代码:


import pdfplumber
import pandas as pd

# 创建一个空数据框
df = pd.DataFrame()

# 使用with语句打开pdf文件
with pdfplumber.open("D:\\python\\cai\\5.pdf") as pdf:
 # 使用for循环遍历每个pages
 for page in pdf.pages:
   # 取出当前页表格,结果为列表
   d=page.extract_table()
   # 将列表转为数据框
   df1 = pd.DataFrame(d[1:], columns=d[0])
   #添加至df数据框中
   df = df.append(df1)

执行代码后,将得到了df数据框

基于Python快速处理PDF表格数据

是不是so easy 呢?

来源:https://www.cnblogs.com/python0921/p/12965135.html

标签:Python,PDF,表格,数据
0
投稿

猜你喜欢

  • 巧用一条SQL 实现其它进制到十进制转换

    2009-01-19 13:16:00
  • 深入了解Hybrid App技术的相关知识

    2023-08-10 09:36:02
  • 使用requests库制作Python爬虫

    2023-08-17 21:43:23
  • 如何把图片也存到数据库中去?

    2009-11-06 13:56:00
  • python 字典操作提取key,value的方法

    2021-06-01 04:40:39
  • python初学者,用python实现基本的学生管理系统(python3)代码实例

    2023-07-01 11:40:01
  • python爬虫自动创建文件夹的功能

    2023-11-05 08:22:40
  • 改进SQL Server数据库系统安全五步走

    2009-01-20 11:47:00
  • 谈谈Javascript中的++和–操作符

    2009-05-08 11:43:00
  • Python Pygame实现俄罗斯方块

    2023-03-17 07:18:03
  • ASP验证码的实现原理及源码

    2007-10-02 12:14:00
  • 利用OpenCV给彩色 图像添加椒盐噪声的方法

    2023-06-15 00:11:30
  • asp修改文件和文件夹的名字的代码

    2011-04-11 11:04:00
  • 如何使用python wasmtime调用rust生成的wasm库

    2023-11-26 23:58:38
  • python使用多进程的实例详解

    2021-09-03 19:19:44
  • dir()、readdir()、scandir()和glob()四种遍历目录方法及性能分析

    2023-05-25 11:18:27
  • python绘制汉诺塔

    2023-07-09 23:13:19
  • 再论Javascript的类继承

    2010-06-26 12:48:00
  • AJAX实现web页面中级联菜单的设计

    2007-09-26 13:37:00
  • Python对象体系深入分析

    2022-10-25 11:29:33
  • asp之家 网络编程 m.aspxhome.com