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


Posted in Python onJune 03, 2020

我们有下面一张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 呢?

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
对于Python的Django框架使用的一些实用建议
Apr 03 Python
python实现网站的模拟登录
Jan 04 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
Python利用递归实现文件的复制方法
Oct 27 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
详解Python连接MySQL数据库的多种方式
Apr 16 Python
python批量识别图片指定区域文字内容
Apr 30 Python
Python3+Appium安装使用教程
Jul 05 Python
python实现批量文件重命名
Oct 31 Python
python轮询机制控制led实例
May 03 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
Sep 16 Python
python实现求纯色彩图像的边框
Apr 08 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
Jun 03 #Python
Python3创建Django项目的几种方法(3种)
Jun 03 #Python
Django 实现 Websocket 广播、点对点发送消息的代码
Jun 03 #Python
使用python实现时间序列白噪声检验方式
Jun 03 #Python
部署Django到阿里云服务器教程示例
Jun 03 #Python
Python flask路由间传递变量实例详解
Jun 03 #Python
django的autoreload机制实现
Jun 03 #Python
You might like
PHP 简单日历实现代码
2009/10/28 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
php bootstrap实现简单登录
2016/03/08 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
2015/11/02 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
js+css实现红包雨效果
2018/07/12 Javascript
深入理解Promise.all
2018/08/08 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
Python比较两个图片相似度的方法
2015/03/13 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
Python正则表达式学习小例子
2020/03/03 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
智乐游戏测试笔试题
2014/05/21 面试题
物流仓管员岗位职责
2013/12/04 职场文书
《学会待客》教学反思
2014/02/22 职场文书
公司财务流程之主管工作流程
2014/03/03 职场文书
计算机实训报告范文
2014/11/05 职场文书
自主招生自荐信格式
2015/03/04 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS