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

如何利用Python提取pdf中的表格數(shù)據(jù)(附實戰(zhàn)案例)

 更新時間:2022年11月10日 09:09:16   作者:艾派森  
從PDF表格中獲取數(shù)據(jù)是一項痛苦的工作,下面這篇文章主要給大家介紹了關(guān)于如何利用Python提取pdf中的表格數(shù)據(jù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

今天給大家介紹一個Python使用工具,那就是從pdf文件中讀取表格數(shù)據(jù),主要用到第三方庫 pdfplumber。

pdfplumber簡介

pdfplumber是一款基于pdfminer,完全由python開發(fā)的pdf文檔解析庫,不僅可以獲取每個字符、矩形框、線等對象的具體信息,而且還可以抽取文本和表格。目前pdfplumber僅支持可編輯的pdf文檔。

雖然pdfminer也可以對可編輯的pdf文檔進(jìn)行解析,但是比較而言,pdfplumber有以下優(yōu)勢:

  1. 二者都可以獲取到每個字符、矩形框、線等對象的具體信息,但是pdfplumber在pdfminer的基礎(chǔ)上進(jìn)行了封裝和處理,使得到的對象更易于使用,對用戶更友好。
  2. 二者都能對文本解析,但是pdfminer輸出的文本在布局上可能與原文差別比較大,但是pdfplumber抽取出的文本與原文可以有更高的一致性。
  3. pdfplumber實現(xiàn)了表格抽取邏輯,基于最基本的字符、線框等對象的位置信息,定位、識別pdf文檔中的表格。

 首先安裝

pip install pdfplumber

實戰(zhàn)案例

本次實戰(zhàn),我們需要將pdf中的獲獎隊伍信息提取出來,然后保存到excel表格中。

?原始pdf文件中大多數(shù)都是如上圖所示的表格,這里為了不泄露個人隱私,我就先打上碼了哈。

接著開始敲代碼提取表格數(shù)據(jù)!

import pandas as pd
import pdfplumber
 
pdf = pdfplumber.open("第十屆“正大杯”國獎名單.pdf")
df = pd.DataFrame()
for i in range(3,53):  # 這里3是指表格信息是從第4頁開始的(程序計數(shù)是從0開始,所以這里第4頁對應(yīng)程序中的3),53是結(jié)束位置
    page = pdf.pages[i]  # 讀取pdf中的每一頁
    table = page.extract_table()  # 從頁數(shù)據(jù)中提取表格數(shù)據(jù)
    df = df.append(table)  # 將提取的數(shù)據(jù)轉(zhuǎn)換為DataFrame二維表格形式
df.drop_duplicates(inplace=True)   # 刪除重復(fù)值
df.to_excel("第十屆“正大杯”國獎名單.xlsx", header=False, index=False)  # 將提取的數(shù)據(jù)保存為excel

這里,我先是用了循環(huán)來提取多頁,3是指表格信息是從第4頁開始的(程序計數(shù)是從0開始,所以這里第4頁對應(yīng)程序中的3),53是結(jié)束位置 。

 運行之后的結(jié)果如下:

?很簡單就將pdf中的表格提取出來了。

做到這里,我只是將一個pdf中的數(shù)據(jù)提取出來了,可是還有幾個類似的pdf需要提取,于是我將上述代碼功能進(jìn)行了簡單的封裝(功能還比較簡陋,各位可根據(jù)自己的需要進(jìn)行擴展)。

def pdf_to_excel(file_path,start:int,end:int,excel_name=None):
    '''
    params:
        file_path:需要提取表格的pdf文件的絕對路徑
        start:出現(xiàn)表格的起始頁碼
        end:表格結(jié)束頁碼
        excel_name:最后保存excel文件的文件名(默認(rèn)為原始pdf文件名)
    '''
    pdf = pdfplumber.open(file_path)
    if not excel_name:
        excel_name = file_path.split('\\')[-1].split('.')[0]
    df_result = pd.DataFrame()
    for i in range(start-1,end):
        page = pdf.pages[i]
        table = page.extract_table()
        df_result = df_result.append(table)
    df_result = df_result.drop_duplicates(inplace=True)
    df_result.to_excel(excel_name+'.xlsx',index=False)
 
pdf_to_excel(file_path=r'C:xxx.pdf',start=4,end=53)

以上就是本次分享的python小工具,希望對有同樣需求的你有所幫助!

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

相關(guān)文章

最新評論