亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Python如何利用pdfplumber提取PDF中的表格

 更新時(shí)間:2024年04月18日 10:32:28   作者:程序媛小本  
pdfplumber 是一個(gè)開(kāi)源的 python 工具庫(kù) ,它可以輕松的獲取 PDF 文本內(nèi)容、標(biāo)題、表格、尺寸等各種信息,今天來(lái)介紹如何使用它來(lái)提取 PDF 中的表格,文中通過(guò)代碼和圖片講解的非常詳細(xì),需要的朋友可以參考下

前言

pdfplumber 是一個(gè)開(kāi)源的 python 工具庫(kù) ,它可以輕松的獲取 PDF 文本內(nèi)容、標(biāo)題、表格、尺寸等各種信息,今天來(lái)介紹如何使用它來(lái)提取 PDF 中的表格。

安裝

首先通過(guò)下面命令安裝 pdfplumber 模塊。

pip install pdfplumber

或是使用豆瓣鏡像源安裝。

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

案例

這里有一份2020年中國(guó)大學(xué)生計(jì)算機(jī)設(shè)計(jì)大賽參賽作品獲獎(jiǎng)名單,文件為 PDF 格式,每頁(yè)都包含表格,表格中包含為各支隊(duì)伍的獲獎(jiǎng)信息,共158頁(yè)。表格前兩頁(yè)內(nèi)容如下。

下面將 PDF 中的表格提取出來(lái),并保存到 Excel 中。

首先導(dǎo)入所需要的模塊:

import pdfplumber
import pandas as pd

讀取 PDF 文件

read_path = '2020年中國(guó)大學(xué)生計(jì)算機(jī)設(shè)計(jì)大賽參賽作品獲獎(jiǎng)名單.pdf'
pdf_2020 = pdfplumber.open(read_path)

pages 屬性包含 PDF 中每頁(yè)的信息,循環(huán)每頁(yè)內(nèi)容,使用 extract_table() 方法提取每頁(yè)中的表格數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)為 DataFrame,最后合并每頁(yè)的數(shù)據(jù)。

result_df = pd.DataFrame()
for page in pdf_2020.pages:
    table = page.extract_table()
    df_detail = pd.DataFrame(table[1:], columns=table[0])
    # 合并每頁(yè)的數(shù)據(jù)集
    result_df = pd.concat([df_detail, result_df], ignore_index=True)

此時(shí)DataFrame中數(shù)據(jù)如下:

可以看到通過(guò) extract_table() 提取后的數(shù)據(jù)有許多包含缺失值的列,我們還需要對(duì)DataFrame進(jìn)行進(jìn)一步處理,刪除全為缺失值的列。

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

刪了缺失值后,列名也一并刪除了,還需要指定對(duì)應(yīng)列名。

result_df.columns = ['獎(jiǎng)項(xiàng)', '作品編號(hào)', '作品名稱', '參賽學(xué)校', '作者', '指導(dǎo)老師']

到現(xiàn)在我們就成功將表格信息完整的提取出來(lái)了!

完整代碼

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 = ['獎(jiǎng)項(xiàng)', '作品編號(hào)', '作品名稱', '參賽學(xué)校', '作者', '指導(dǎo)老師']
    result_df.to_excel(excel_writer=save_path, index=False, encoding='utf-8')

read_path = r'2020年中國(guó)大學(xué)生計(jì)算機(jī)設(shè)計(jì)大賽參賽作品獲獎(jiǎng)名單.pdf'
save_path = r'2020年中國(guó)大學(xué)生計(jì)算機(jī)設(shè)計(jì)大賽參賽作品獲獎(jiǎng)名單.xlsx'
read_pdf(read_path, save_path)

到此這篇關(guān)于詳解Python如何利用pdfplumber提取PDF中的表格的文章就介紹到這了,更多相關(guān)Python pdfplumber提取PDF表格內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文帶你掌握Python中enumerate函數(shù)和for循環(huán)的對(duì)比

    一文帶你掌握Python中enumerate函數(shù)和for循環(huán)的對(duì)比

    在Python編程中,循環(huán)是一項(xiàng)常見(jiàn)的任務(wù),而for循環(huán)是最常見(jiàn)的一種,然而,Python提供了enumerate函數(shù),它允許在迭代過(guò)程中訪問(wèn)元素的同時(shí)獲得它們的索引,下面我們就來(lái)學(xué)習(xí)一下二者的區(qū)別吧
    2023-11-11
  • Django rest framework工具包簡(jiǎn)單用法示例

    Django rest framework工具包簡(jiǎn)單用法示例

    這篇文章主要介紹了Django rest framework工具包簡(jiǎn)單用法,結(jié)合匿名訪問(wèn)控制的具體實(shí)例分析了Django rest framework工具包的注冊(cè)、路由設(shè)置、視圖、權(quán)限控制、配置等相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • pygame 鍵盤事件的實(shí)踐

    pygame 鍵盤事件的實(shí)踐

    本文主要介紹了pygame 鍵盤事件,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • python用folium繪制地圖并設(shè)置彈窗效果

    python用folium繪制地圖并設(shè)置彈窗效果

    這篇文章主要介紹了python用folium繪制地圖并設(shè)置彈窗,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Python高效定時(shí)任務(wù)處理APScheduler庫(kù)深入學(xué)習(xí)

    Python高效定時(shí)任務(wù)處理APScheduler庫(kù)深入學(xué)習(xí)

    這篇文章主要為大家介紹了Python高效定時(shí)任務(wù)處理APScheduler庫(kù)深入學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Python?shapefile轉(zhuǎn)GeoJson的2種方式實(shí)例

    Python?shapefile轉(zhuǎn)GeoJson的2種方式實(shí)例

    geojson是地圖可視化系統(tǒng)中最常用的地理數(shù)據(jù)格式,幾乎所有主流地圖可視化庫(kù)或框架都支持geojson數(shù)據(jù)的加載,下面這篇文章主要給大家介紹了關(guān)于Python?shapefile轉(zhuǎn)GeoJson的2種方式的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 利用python清除移動(dòng)硬盤中的臨時(shí)文件

    利用python清除移動(dòng)硬盤中的臨時(shí)文件

    本篇文章的目的是在移動(dòng)硬盤插入到電腦的同時(shí),利用Python自動(dòng)化和Windows服務(wù)刪除掉這些臨時(shí)文件。感興趣的朋友可以了解下
    2020-10-10
  • python plt如何保存為emf圖像

    python plt如何保存為emf圖像

    這篇文章主要介紹了python plt如何保存為emf圖像問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python輕松實(shí)現(xiàn)批量郵件自動(dòng)化詳解

    Python輕松實(shí)現(xiàn)批量郵件自動(dòng)化詳解

    在日常工作和生活中,我們經(jīng)常需要發(fā)送郵件,手動(dòng)發(fā)送郵件不僅繁瑣,而且容易出錯(cuò),下面我們就來(lái)看看如何使用Python實(shí)現(xiàn)批量郵件自動(dòng)化操作吧
    2025-02-02
  • Python異常處理操作實(shí)例詳解

    Python異常處理操作實(shí)例詳解

    這篇文章主要介紹了Python異常處理操作,結(jié)合實(shí)例形式分析了Python異常處理的相關(guān)原理、操作語(yǔ)句與使用技巧,需要的朋友可以參考下
    2018-05-05

最新評(píng)論