基于Python快速處理PDF表格數(shù)據(jù)
我們有下面一張PDF格式存儲的表格,現(xiàn)在需要使用Python將它提取出來。
使用Python提取表格數(shù)據(jù)需要使用pdfplumber模塊,打開CMD,安裝代碼如下:
pip install pdfplumber
安裝完之后,將需要使用的模塊導(dǎo)入
import pdfplumberimport pandas as pd
然后打開PDF文件
# 使用with語句打開pdf文件 with pdfplumber.open("D:\\python\\cai\\yq.pdf") as pdf: # pages[0]表示取第1頁 page = pdf.pages[0]
我們來打印輸出下獲取到的文本,這句語句只是幫我們驗證下是否成功獲取到PDF里的內(nèi)容
print(page.extract_text())
執(zhí)行的結(jié)果如下,看來是成功了
然后可以使用extract_table()函數(shù)獲取表格,如果有多個表格,可以使用extract_tables()函數(shù),就是多了個s
d1=page.extract_table()
執(zhí)行代碼后,將得到一個列表,還不是數(shù)據(jù)框
所以最后一步就是將列表轉(zhuǎn)為數(shù)據(jù)框就可以了,代碼如下:
df = pd.DataFrame(d1[1:], columns=d1[0])
執(zhí)行代碼后,將得到了df數(shù)據(jù)框
有幾個注意事項要提醒下:
1.pdf表格中的數(shù)據(jù),對于同一個數(shù)據(jù)或內(nèi)容,不要有換行,如果換行,可能被識別為2個數(shù)據(jù);
2.pdf中的表格一定要有邊框,沒有邊框的話,否則使用extract_table()函數(shù)就無法獲取表格數(shù)據(jù),extract_text()還是可以獲取文本信息的,不要問我是怎么知道的,說多了都是淚。
我們現(xiàn)在有一份PDF數(shù)據(jù),里面有三頁,每頁都有一樣數(shù)據(jù)結(jié)構(gòu)但數(shù)據(jù)不同的數(shù)據(jù)表,現(xiàn)在需要使用Python將它批量提取出來。
有了上回經(jīng)驗,我們就直接上代碼:
import pdfplumber import pandas as pd # 創(chuàng)建一個空數(shù)據(jù)框 df = pd.DataFrame() # 使用with語句打開pdf文件 with pdfplumber.open("D:\\python\\cai\\5.pdf") as pdf: # 使用for循環(huán)遍歷每個pages for page in pdf.pages: # 取出當(dāng)前頁表格,結(jié)果為列表 d=page.extract_table() # 將列表轉(zhuǎn)為數(shù)據(jù)框 df1 = pd.DataFrame(d[1:], columns=d[0]) #添加至df數(shù)據(jù)框中 df = df.append(df1)
執(zhí)行代碼后,將得到了df數(shù)據(jù)框
是不是so easy 呢?
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python基礎(chǔ)之函數(shù)嵌套知識總結(jié)
今天帶大家回顧python基礎(chǔ)知識,文中對Python函數(shù)嵌套作了非常詳細(xì)的知識總結(jié),對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05Python用tkinter實現(xiàn)自定義記事本的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python用tkinter實現(xiàn)自定義記事本的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03解決python腳本中error: unrecognized arguments: True錯誤
這篇文章主要介紹了解決python腳本中error: unrecognized arguments: True錯誤,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python復(fù)制Word內(nèi)容并使用格式設(shè)字體與大小實例代碼
這篇文章主要介紹了Python復(fù)制Word內(nèi)容并使用格式設(shè)字體與大小實例代碼,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-01-01python?matplotlib畫圖時坐標(biāo)軸重疊顯示不全和圖片保存時不完整的問題解決
最近工作中遇到了matplotlib保存圖片坐標(biāo)軸不完整的問題,所以這篇文章主要給大家介紹了關(guān)于python?matplotlib畫圖時坐標(biāo)軸重疊顯示不全和圖片保存時不完整問題的解決方法,需要的朋友可以參考下2022-07-07