【python实战】:3行代码提取PDF中的表格,含教程懂中文就会

前言

pdfplumber 是一个开源的 python 工具库 ,它可以轻松的获取 PDF 文本内容、标题、表格、尺寸等各种信息,今天来介绍如何使用它来提取 PDF 中的表格。

安装

首先通过下面命令安装 pdfplumber 模块。

pip install pdfplumber

或是使用豆瓣镜像源安装。

pip install -i https://pypi.douban.com/simple pdfplumber

案例

这里有一份2020年中国大学生计算机设计大赛参赛作品获奖名单,文件为 PDF 格式,每页都包含表格,表格中包含为各支队伍的获奖信息,共158页。表格前两页内容如下。

下面将 PDF 中的表格提取出来,并保存到 Excel 中。

首先导入所需要的模块:

import pdfplumber
import pandas as pd

读取 PDF 文件

read_path = '2020年中国大学生计算机设计大赛参赛作品获奖名单.pdf'
pdf_2020 = pdfplumber.open(read_path)

pages 属性包含 PDF 中每页的信息,循环每页内容,使用 extract_table() 方法提取每页中的表格数据,并将数据转为 DataFrame,最后合并每页的数据。

result_df = pd.DataFrame()
for page in pdf_2020.pages:
    table = page.extract_table()
    df_detail = pd.DataFrame(table[1:], columns=table[0])
    # 合并每页的数据集
    result_df = pd.concat([df_detail, result_df], ignore_index=True)

此时DataFrame中数据如下:

可以看到通过 extract_table() 提取后的数据有许多包含缺失值的列,我们还需要对DataFrame进行进一步处理,删除全为缺失值的列。

result_df.dropna(axis=1, how='all', inplace=True)

删了缺失值后,列名也一并删除了,还需要指定对应列名。

result_df.columns = ['奖项', '作品编号', '作品名称', '参赛学校', '作者', '指导老师']

到现在我们就成功将表格信息完整的提取出来了!

完整代码

import pdfplumber
import pandas as pd

def read_pdf(read_path, save_path):
    pdf_2020 = pdfplumber.open(read_path)
    result_df = pd.DataFrame()
    for page in pdf_2020.pages:
        table = page.extract_table()
        print(table)
        df_detail = pd.DataFrame(table[1:], columns=table[0])
        result_df = pd.concat([df_detail, result_df], ignore_index=True)
    result_df.dropna(axis=1, how='all', inplace=True)
    result_df.columns = ['奖项', '作品编号', '作品名称', '参赛学校', '作者', '指导老师']
    result_df.to_excel(excel_writer=save_path, index=False, encoding='utf-8')

read_path = r'2020年中国大学生计算机设计大赛参赛作品获奖名单.pdf'
save_path = r'2020年中国大学生计算机设计大赛参赛作品获奖名单.xlsx'
read_pdf(read_path, save_path)

既然你都读到这儿了,看来也是python的真爱,那就赶紧和我一起学到昏厥吧!

Python经验分享

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家免费分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
9f49b566129f47b8a67243c1008edf79.png

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

8c4513c1a906b72cbf93031e6781512b.png

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

afc935d834c5452090670f48eda180e0.png

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

252731a671c1fb70aad5355a2c5eeff0.png

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

6c361282296f86381401c05e862fe4e9.png

d2d978bb523c810abca3abe69e09bc1a.png

这份完整版的Python全套学习资料已经上传CSDN
朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

资源领取

在这里插入图片描述

这世界上赚钱成本最低的就是:用知识投资大脑

人生什么时候学习都不晚,晚的是你一直想学却一直没有行动,而导致大量内耗

最后祝你学习愉快

好文推荐

了解python的前景:https://blog.csdn.net/weixin_49891576/article/details/127187029

python有什么用:https://blog.csdn.net/weixin_49891576/article/details/127125308

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值