python从PDF中提取数据的示例

作者:HuangWeiAI 时间:2021-10-15 21:46:05 

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)

来源:https://cloud.tencent.com/developer/article/1668817

标签:python,PDF,提取,数据
0
投稿

猜你喜欢

  • Python纯代码通过神经网络实现线性回归的拟合方式

    2022-07-12 23:54:59
  • python matlibplot绘制3D图形

    2023-05-21 18:47:36
  • 基于python实现文件加密功能

    2022-02-02 20:28:57
  • 使用apidoc管理RESTful风格Flask项目接口文档方法

    2022-11-24 10:05:14
  • 解析zend studio中直接导入svn中的项目的方法步骤

    2023-09-05 02:21:01
  • go日志库中的logrus

    2023-07-21 13:48:02
  • SQL 2005 sa islock用户不能正常登录的现象

    2008-12-05 15:49:00
  • nlp自然语言处理学习CBOW模型类实现示例解析

    2023-08-08 00:26:03
  • Python中优雅使用assert断言的方法实例

    2021-03-27 12:56:58
  • 基于Python实现简易学生信息管理系统

    2021-04-07 23:19:49
  • php开启mysqli扩展之后如何连接数据库

    2023-11-14 17:36:08
  • 怎么样才能让层显示在FLASH之上呢

    2008-03-05 13:32:00
  • PHP取整函数:ceil,floor,round,intval的区别详细解析

    2023-11-17 18:30:33
  • Python logging日志模块 配置文件方式

    2021-03-07 04:31:01
  • 在mac下查找python包存放路径site-packages的实现方法

    2023-06-12 21:12:36
  • 浅谈JavaScript编程语言的编码规范

    2010-08-18 12:08:00
  • linux下mysql命令

    2011-01-04 19:42:00
  • css元素层叠级别及z-index剖析

    2008-08-29 12:41:00
  • 解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory

    2023-09-05 06:07:44
  • 你凭什么说你的网站用户体验好

    2011-03-31 17:08:00
  • asp之家 网络编程 m.aspxhome.com