国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

基于Python快速處理PDF表格數(shù)據(jù)

瀏覽:84日期:2022-07-23 10:50:35

我們有下面一張PDF格式存儲的表格,現(xiàn)在需要使用Python將它提取出來。

基于Python快速處理PDF表格數(shù)據(jù)

使用Python提取表格數(shù)據(jù)需要使用pdfplumber模塊,打開CMD,安裝代碼如下:

pip install pdfplumber

安裝完之后,將需要使用的模塊導入

import pdfplumberimport pandas as pd

然后打開PDF文件

# 使用with語句打開pdf文件with pdfplumber.open('D:pythoncaiyq.pdf') as pdf: # pages[0]表示取第1頁 page = pdf.pages[0]

我們來打印輸出下獲取到的文本,這句語句只是幫我們驗證下是否成功獲取到PDF里的內容

print(page.extract_text())

執(zhí)行的結果如下,看來是成功了

基于Python快速處理PDF表格數(shù)據(jù)

然后可以使用extract_table()函數(shù)獲取表格,如果有多個表格,可以使用extract_tables()函數(shù),就是多了個s

d1=page.extract_table()

執(zhí)行代碼后,將得到一個列表,還不是數(shù)據(jù)框

基于Python快速處理PDF表格數(shù)據(jù)

所以最后一步就是將列表轉為數(shù)據(jù)框就可以了,代碼如下:

df = pd.DataFrame(d1[1:], columns=d1[0])

執(zhí)行代碼后,將得到了df數(shù)據(jù)框

基于Python快速處理PDF表格數(shù)據(jù)

有幾個注意事項要提醒下:

1.pdf表格中的數(shù)據(jù),對于同一個數(shù)據(jù)或內容,不要有換行,如果換行,可能被識別為2個數(shù)據(jù);

2.pdf中的表格一定要有邊框,沒有邊框的話,否則使用extract_table()函數(shù)就無法獲取表格數(shù)據(jù),extract_text()還是可以獲取文本信息的,不要問我是怎么知道的,說多了都是淚。

我們現(xiàn)在有一份PDF數(shù)據(jù),里面有三頁,每頁都有一樣數(shù)據(jù)結構但數(shù)據(jù)不同的數(shù)據(jù)表,現(xiàn)在需要使用Python將它批量提取出來。

基于Python快速處理PDF表格數(shù)據(jù)

基于Python快速處理PDF表格數(shù)據(jù)

基于Python快速處理PDF表格數(shù)據(jù)

有了上回經(jīng)驗,我們就直接上代碼:

import pdfplumberimport pandas as pd # 創(chuàng)建一個空數(shù)據(jù)框df = pd.DataFrame() # 使用with語句打開pdf文件with pdfplumber.open('D:pythoncai5.pdf') as pdf: # 使用for循環(huán)遍歷每個pages for page in pdf.pages: # 取出當前頁表格,結果為列表 d=page.extract_table() # 將列表轉為數(shù)據(jù)框 df1 = pd.DataFrame(d[1:], columns=d[0]) #添加至df數(shù)據(jù)框中 df = df.append(df1)

執(zhí)行代碼后,將得到了df數(shù)據(jù)框

基于Python快速處理PDF表格數(shù)據(jù)

是不是so easy 呢?

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 交城县| 白水县| 赤水市| 屏东市| 遵义县| 通许县| 天柱县| 景洪市| 郯城县| 白沙| 满城县| 西贡区| 南京市| 湟源县| 华容县| 佛坪县| 舒兰市| 兰溪市| 红河县| 长子县| 武义县| 龙门县| 呼和浩特市| 溧阳市| 融水| 资阳市| 英德市| 静安区| 敦化市| 建德市| 开平市| 汾阳市| 崇左市| 丹凤县| 九寨沟县| 曲麻莱县| 威信县| 林芝县| 台北市| 海兴县| 神木县|