前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

同事在处理PDF表格数据,而我早早做完在摸鱼(步骤详细附代码) Python 第1张

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

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

加企鹅群695185429即可免费获取,资料全在群文件里。资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等

同事在处理PDF表格数据,而我早早做完在摸鱼(步骤详细附代码) Python 第2张

 

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

pip install pdfplumber

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

import pdfplumber
import 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())

 

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

同事在处理PDF表格数据,而我早早做完在摸鱼(步骤详细附代码) Python 第3张

 

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

d1=page.extract_table()

 

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

同事在处理PDF表格数据,而我早早做完在摸鱼(步骤详细附代码) Python 第4张

 

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

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

 

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

同事在处理PDF表格数据,而我早早做完在摸鱼(步骤详细附代码) Python 第5张

 

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

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

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

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

同事在处理PDF表格数据,而我早早做完在摸鱼(步骤详细附代码) Python 第6张

 

同事在处理PDF表格数据,而我早早做完在摸鱼(步骤详细附代码) Python 第7张

 

同事在处理PDF表格数据,而我早早做完在摸鱼(步骤详细附代码) Python 第8张

 

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

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数据框

同事在处理PDF表格数据,而我早早做完在摸鱼(步骤详细附代码) Python 第9张

 

是不是so easy 呢?

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄