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

使用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())

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

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

d1=page.extract_table()

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

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

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

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

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

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

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

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

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

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

是不是so easy 呢?

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

本文标题: 基于Python快速处理PDF表格数据

本文地址: http://www.cppcns.com/jiaoben/python/315871.html

python处理表格数据-基于Python快速处理PDF表格数据相关推荐

  1. Python数据分析初探项目 基于Python数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022年)

    Python 数据分析初探项目 基于 Python 数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022 年) Python 数据分析初探项目 基于 Python 数据可 ...

  2. Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习、深度学习、大数据、云计算等)推荐系统(包括语音生成、识别等前沿黑科技)

    Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习.深度学习.大数据.云计算等)推荐系统(包括语音生成.识别等前沿黑科技) 导读 基于Python的GUI界面设计的一套 ...

  3. Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能

    Python语言学习:基于python五种方法实现使用某函数名[func_01]的字符串格式('func_01')来调用该函数[func_01]执行功能 目录 问题提出 代码五种设计思路 T1方法:e ...

  4. 如何基于MaxCompute快速打通数据仓库和数据湖的湖仓一体实践

    简介: MaxCompute 是面向分析的企业级 SaaS 模式云数据仓库,以 Serverless 架构提供快速.全托管的在线数据仓库服务,消除了传统数据平台在资源扩展性和弹性方面的限制,最小化用户 ...

  5. Python人脸识别教程 - 基于Python的开源人脸识别库:离线识别率高达99.38%

    Python人脸识别教程 - 基于Python的开源人脸识别库:离线识别率高达99.38% 仅用 Python 和命令行就可以实现人脸识别的库开源了.该库使用 dlib 顶尖的深度学习人脸识别技术构建 ...

  6. 计算机数据表格展示,利用工具,一分钟完成数据可视化,快速输出美观的数据图表...

    天天跟表格打交道的办公室的表哥表妹,为了能让老板看的更一目了然,可以说是费时费力. 今天小姐姐给大家分享一下如何利用工具,一分钟完成数据可视化,快速输出美观的数据图表. [新手们必须收藏转发呀] 为什 ...

  7. Origin中导入数据后怎样快速便捷的观看数据迷你图

    Origin中导入数据后怎样快速便捷的观看数据迷你图 在Origin中做大批量数据统计分析且有多个参数时,可以先验通过各个参数的迷你图大致看出数据走势规律,但有时候导入数据后不会自动生成迷你图,这时就 ...

  8. python爬虫表格table_Python基于pandas爬取网页表格数据

    以网页表格为例:https://www.kuaidaili.com/free/ 该网站数据存在table标签,直接用requests,需要结合bs4解析正则/xpath/lxml等,没有几行代码是搞不 ...

  9. python 物理实验_基于Python和梯度下降算法的物理实验数据一元线性拟合方法

    基于 Python 和梯度下降算法的物理实验数据一元线性拟 合方法 关毅铬 ; 程敏熙 [期刊名称] < <物理通报> > [年 ( 卷 ), 期] 2019(000)010 ...

最新文章

  1. 在SQL中使用CRL函数示例
  2. 效果很好的asp.net的数据库访问模型(优化,封装一体化)
  3. 2022年美国大学生数学建模竞赛常见问题汇总
  4. pcb matrix ipc lp viewer软件中SMN、SMM、SML三个库的区别
  5. 从零写一个编译器(十一):代码生成之Java字节码基础
  6. 国内互联网公司算法机器学习岗(阿里星)面试总结
  7. linux中切换到上级目录,vsftp中控制用户是否允许切换到上级目录
  8. Python使用JSON序列化从入门到精通
  9. 基于双生视界的live2d提取与查看方法
  10. 快速掌握——LCD1602液晶显示(多组实验,附带源程序)
  11. 基于阿里云的基础架构设施保障(一)IAAS云计算
  12. 台式电脑连接电脑主机与显示器
  13. python3中英文混合字符串的分离
  14. Maven2的新特性
  15. [IOS APP]毕淑敏经典有声小说
  16. 斐讯N1 – 完美刷机Armbian教程
  17. 复习IO流复制文件时,文件损坏并且文件变得超大(FileInputStream和FileOutputStream)数组复制
  18. 怎样改变照片大小?免费在线图片压缩方法
  19. 07 Python数据类型详解
  20. 【C语言】assert() 断言的作用

热门文章

  1. 基于深度学习的目标检测算法:SSD——常见的目标检测算法
  2. DNS tunnel的原理及实战
  3. slplunk原始数据和索引数据大小比较
  4. python 的进程池不可嵌套
  5. vue 去除路由时候的#
  6. Centos7.0一键搭建Python3.6开发环境
  7. 不使用loop循环,创建一个长度为100的数组,并且每个元素的值等于它的下标
  8. drf-频率组件 权限组件
  9. Promise和setTimeout执行顺序 面试题
  10. 大整数乘法(POJ2389)