本文就目前python图表识别的库进行测试
1、tabula
2、pdfplumber
3、camelot

准备数据

excel:names.xlsx,两个表格
表格1:所有字段都被线条包围
表格2:最外层没有线条包围

将excel另存为pdf:names.pdf

1、tabula

java项目:https://github.com/tabulapdf

自带可视化界面的pdf提取表格数据工具:
https://tabula.technology/

python接口:https://github.com/chezou/tabula-py

安装:

pip install tabula-py

依赖:
Java 7, 8

代码示例:

import tabulatabula.convert_into(input_path="source/names.pdf",output_path="source/names.csv",output_format='csv'
)

转换出来的names.csv,发现只有表格1被提取出来了,而且不规范,中间多了逗号

"姓名",年龄,性别
"李雷",,20 男
"韩梅梅",,23 女
"赵小三",,25 女

2、pdfplumber

github: https://github.com/jsvine/pdfplumber

安装

pip install pdfplumber

代码示例:

import pdfplumber
import pandas as pdwith pdfplumber.open("source/names.pdf") as pdf:# 获取第一页first_page = pdf.pages[0]# 解析文本text = first_page.extract_text()print(text)# 解析表格tables = first_page.extract_tables()for table in tables:print(table)# df = pd.DataFrame(table[1:], columns=table[0])for row in table:for cell in row:print(cell, end="\t|")print()
"""
表格1:
姓名 年龄 性别
李雷 20 男
韩梅梅 23 女
赵小三 25 女Table2:
Name Age Gender
Tom 30 Male
Jack 33 Male
Jone 31 Female[['姓名', '年龄', '性别'], ['李雷', '20', '男'], ['韩梅梅', '23', '女'], ['赵小三', '25', '女']]姓名 |年龄 |性别 |
李雷  |20 |男  |
韩梅梅 |23 |女  |
赵小三 |25 |女  |[['30'], ['33']]30 |
33  |"""

文本解析的很全,只有表格1解析完全了,表格2只是解析了有框的部分

3、camelot

github: https://github.com/socialcopsdev/camelot

安装:

pip install camelot-py[cv]

示例

import camelottables = camelot.read_pdf("source/names.pdf")
tables.export("source/names.csv")

生成2个文件:
source/names-page-1-table-1.csv

"姓名","年龄","性别"
"李雷","20 男",""
"韩梅梅","23 女",""
"赵小三","25 女",""

source/names-page-1-table-2.csv

"Name","Age","Gender"
"Tom","","30 Male"
"Jack","","33 Male"
"Jone","","31 Female"

发现表格2的内容被解析出来了,不过两个表格的内容都错位了

经过测试后,发现这3个库对表格识别都不是太好

总结

库名 说明
tabula 能提取完整表格,提取结果不规范
pdfplumber 能提取完整表格,提取结果较为规范
camelot 能提取完整表格和不完整表格,提取结果不规范

python编程:tabula、pdfplumber、camelot进行表格数据识别相关推荐

  1. 2018年全国高校教师“Python编程、应用及华为大数据”培训班

    关于举办2018年全国中高等院校教师 "Python编程.应用及华为大数据"培训班通知 全国各中高等院校计算机.软件等相关院(系): Python是一门免费.开源的跨平台高级动态编 ...

  2. 2018年全国中高等院校教师“Python编程、应用及华为大数据” 、“网络空间安全”、“区块链”培训班...

    关于举办2018年全国中高等院校教师"Python编程.应用及华为大数据" ."网络空间安全"."区块链"培训班通知 全国各中高等院校计算机 ...

  3. python 提取pdf表格_用Python提取pdf文件中的表格数据

    本文作者:杨慧琳 本文编辑:周聪聪 技术总编:张学人有问题,不要怕!访问 http://www.wuhanstring.com/uploads/5_aboutus/爬虫俱乐部-用户问题登记表.docx ...

  4. python读取html文件中的表格数据_Python 读取各类文件格式的文本信息 | doc,excel,html,mht...

    原标题:Python 读取各类文件格式的文本信息 | doc,excel,html,mht 众所周知,python最强大的地方在于,python社区汇总拥有丰富的第三方库,开源的特性,使得有越来越多的 ...

  5. Python实现将多个Excel表格数据一键合并到一个表格,轻松提升办公效率!

    老板最近越来越过分了,快下班了发给我几百个表格让我把内容合并到一个表格内去. 还好我会Python,分分钟就搞定了,这要是换个不会Python的,不得加班到第二天天亮去了~ 这么好用的技能,必须分享给 ...

  6. python怎么编辑excel_python 修改excel表格数据-关于如何用python 编辑 excel表格

    python对Excel中数据的处理 把你的写入excel 的内容编码一哈 例如 str('内容').encode('utf-8') 或者str('内容').encode('gbk') 再写入exce ...

  7. python编程从入门到实践 之 数据可视化部分总结和回顾(未完待续)

    15.1生成数据 matplotlib:是一个数学绘图库,使用它可以制作简单的图标. pygal包:专注于生成适合在数字设备上显示的图标.通过使用pygal,可以在与图表交互时突出元素以及调整大小,还 ...

  8. python编程简单案例_[五组数据]详解一个简单的卡尔曼滤波器python编程实例

    上半年毕设的时候接触了卡尔曼滤波器,用matlab实现了该过程,尝试在一个课后作业中用三维度矩阵来存储变量的方式,结构似乎更好理解,记录一下分析的过程. 假如有一块电阻,你不知道它的阻值是多少,你想 ...

  9. python读取html文件中的表格数据_使用解析html表pd.read_html文件其中单元格本身包含完整表...

    不能使用^{}读取嵌套表,但可以滚动自己的html阅读器,并对表单元格使用read_html:import pandas as pd import bs4 with open('up_pf00344. ...

最新文章

  1. TPOT: 自动化的sklearn
  2. 国外AI教学网红网站
  3. DigSci科学数据挖掘大赛:如何在3天内拿下DigSci亚军
  4. 寒冬悟道者马云:阿里巴巴逢单出击(4)
  5. Tomcat解决HTTP GET中文乱码
  6. 查询某一支接口,指定时间段的数据 按分钟排序
  7. ai建立使用图案_ai自定义图案的方法详解步骤图
  8. CCNA学习与实验指南(640-802)
  9. python实现二分法查找_python二分法查找
  10. Ajax (菜鸟教程)学习笔记
  11. 如何删除双系统中的其中一个(完全删除)
  12. Appium+python自动化(二十一)- 让猴子按你指令大闹手机,让我们都成为耍猴高手(超详解)...
  13. discuz教程 毫无基础常识的站长搭建HTTPS。图文并茂
  14. Mysql必知必会概要总结
  15. 王者服务器维护s24,王者荣耀:体验更新S24数据,征召模式痛点解决,不会再失手了...
  16. 业务逻辑漏洞挖掘-某网站绕过下载付费机制进行下载文件
  17. USB2.0接口CM4_5G mini驱动板搭配广和通FM650在Win11下的测速
  18. 阿里云服务器4核8G配置CPU性能报价表
  19. 中学化学教学参考杂志社中学化学教学参考编辑部2022年第12期目录
  20. 新未来,决战支付大数据

热门文章

  1. 扩展巴科斯范式 EBNF
  2. jquery给input赋值
  3. Java#37(反射)
  4. 王者荣耀服务器什么时候维护好2020,2020年王者荣耀到底经历了什么?来给你好好捋一捋...
  5. es审计日志_elasticsearch 事务日志translog
  6. windows下载redis、windows安装redis、windows启动redis
  7. 关于天地图覆盖物-聚合点数据问题
  8. c语言 mpi程序设计,MPI并行程序设计-基础
  9. [SDOI2010] 所驼门王的宝藏
  10. No module named mpl_toolkits解决方案