python从PDF中提取数据的示例


Posted in Python onOctober 30, 2020

01

前言

数据是数据科学中任何分析的关键,大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据。然而,由于可移植文档格式(pdf)文件是最常用的文件格式之一,因此每个数据科学家都应该了解如何从pdf文件中提取数据,并将数据转换为诸如“csv”之类的格式,以便用于分析或构建模型。

在本文中,我们将重点讨论如何从pdf文件中提取数据表。类似的分析可以用于从pdf文件中提取其他类型的数据,如文本或图像。我们将说明如何从pdf文件中提取数据表,然后将其转换为适合于进一步分析和构建模型的格式。我们将给出一个实例。

python从PDF中提取数据的示例

02

示例:使用Python从PDF文件中提取一个表格

a)将表复制到Excel并保存为table_1_raw.csv

python从PDF中提取数据的示例

数据以一维格式存储,必须进行重塑、清理和转换。

b)导入必要的库

import pandas as pd
import numpy as np

c)导入原始数据,重新定义数据

df=pd.read_csv("table_1_raw.csv", header=None)
df.values.shape
df2=pd.DataFrame(df.values.reshape(25,10))
column_names=df2[0:1].values[0]
df3=df2[1:]
df3.columns = df2[0:1].values[0]
df3.head()

python从PDF中提取数据的示例

d)使用字符串处理工具进行数据纠缠

我们从上面的表格中注意到,x5、x6和x7列是用百分比表示的,所以我们需要去掉percent(%)符号:

df4['x5']=list(map(lambda x: x[:-1], df4['x5'].values))
df4['x6']=list(map(lambda x: x[:-1], df4['x6'].values))
df4['x7']=list(map(lambda x: x[:-1], df4['x7'].values))

e)将数据转换为数字形式

我们注意到列x5、x6和x7的列值数据类型为string,因此我们需要将它们转换为数值数据,如下所示:

df4['x5']=[float(x) for x in df4['x5'].values]
df4['x6']=[float(x) for x in df4['x6'].values]
df4['x7']=[float(x) for x in df4['x7'].values]

f)查看转换数据的最终形式

df4.head(n=5)

python从PDF中提取数据的示例

g)导出最终数据到一个csv文件

df4.to_csv('table_1_final.csv',index=False)

以上就是python从PDF中提取数据的示例的详细内容,更多关于python 提取PDF数据的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中使用语句导入模块或包的机制研究
Mar 30 Python
python中子类调用父类函数的方法示例
Aug 18 Python
Python实现的knn算法示例
Jun 14 Python
pycharm 将python文件打包为exe格式的方法
Jan 16 Python
详解Python中的各种转义符\n\r\t
Jul 10 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
python 两个数据库postgresql对比
Oct 21 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
python实现文件+参数发送request的实例代码
Jan 05 Python
pycharm 如何取消连按两下shift出现的全局搜索
Jan 15 Python
尝试使用Python爬取城市租房信息
Apr 12 Python
Python 文字识别
May 11 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
Oct 30 #Python
python boto和boto3操作bucket的示例
Oct 30 #Python
python 多进程和协程配合使用写入数据
Oct 30 #Python
python打包生成so文件的实现
Oct 30 #Python
pytorch 移动端部署之helloworld的使用
Oct 30 #Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
Oct 30 #Python
Python模拟登录和登录跳转的参考示例
Oct 30 #Python
You might like
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
laravel 数据验证规则详解
2019/10/23 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
window.location.hash 属性使用说明
2010/03/20 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
vue2.0 自定义日期时间过滤器
2017/06/07 Javascript
node.js通过axios实现网络请求的方法
2018/03/05 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
python argparser的具体使用
2019/11/10 Python
Python类的继承super相关原理解析
2020/10/22 Python
CSS3 media queries + jQuery实现响应式导航
2016/09/30 HTML / CSS
基于HTML5的WebSocket的实例代码
2018/08/15 HTML / CSS
护理自我鉴定范文
2013/10/06 职场文书
一封普通求职者的求职信
2013/11/20 职场文书
网络编辑岗位职责范本
2014/02/10 职场文书
物资采购方案
2014/06/12 职场文书
自查自纠工作总结
2014/10/15 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
写给老师的保证书
2015/05/09 职场文书
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
2022/04/08 Java/Android