欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

安裝

首先通過下面命令安裝 pdfplumber 模塊。

pip install pdfplumber

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

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

案例

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

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

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

import pdfplumber
import pandas as pd

讀取 PDF 文件

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

pages 屬性包含 PDF 中每頁的信息,循環(huán)每頁內(nèi)容,使用 extract_table() 方法提取每頁中的表格數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)為 DataFrame,最后合并每頁的數(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])
    # 合并每頁的數(shù)據(jù)集
    result_df = pd.concat([df_detail, result_df], ignore_index=True)

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

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

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

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

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

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

完整代碼

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

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

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

相關(guān)文章

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

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

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

    Django rest framework工具包簡單用法示例

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

    pygame 鍵盤事件的實踐

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

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

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

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

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

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

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

    利用python清除移動硬盤中的臨時文件

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

    python plt如何保存為emf圖像

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

    Python輕松實現(xiàn)批量郵件自動化詳解

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

    Python異常處理操作實例詳解

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

最新評論