同事在處理PDF表格數據,而我早早做完在摸魚(步驟詳細附代碼)

前言

本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。

 

 

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

同事在處理PDF表格數據,而我早早做完在摸魚(步驟詳細附代碼)

 

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

pip install pdfplumber

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

import pdfplumber
import pandas as pd

然後打開PDF文件

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

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

print(page.extract_text())

執行的結果如下,看來是成功了

同事在處理PDF表格數據,而我早早做完在摸魚(步驟詳細附代碼)

 

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

d1=page.extract_table()

執行代碼後,將得到一個列表,還不是數據框

同事在處理PDF表格數據,而我早早做完在摸魚(步驟詳細附代碼)

 

所以最後一步就是將列表轉爲數據框就可以了,代碼如下:

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

執行代碼後,將得到了df數據框

同事在處理PDF表格數據,而我早早做完在摸魚(步驟詳細附代碼)

 

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

1.pdf表格中的數據,對於同一個數據或內容,不要有換行,如果換行,可能被識別爲2個數據;

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

我們現在有一份PDF數據,裏面有三頁,每頁都有一樣數據結構但數據不同的數據表,現在需要使用Python將它批量提取出來。

同事在處理PDF表格數據,而我早早做完在摸魚(步驟詳細附代碼)

 

同事在處理PDF表格數據,而我早早做完在摸魚(步驟詳細附代碼)

 

同事在處理PDF表格數據,而我早早做完在摸魚(步驟詳細附代碼)

 

有了上回經驗,我們就直接上代碼:

 1import pdfplumber
 2import pandas as pd
 3
 4# 創建一個空數據框
 5df = pd.DataFrame()
 6
 7# 使用with語句打開pdf文件
 8with pdfplumber.open("D:\\python\\cai\\5.pdf") as pdf:
 9    # 使用for循環遍歷每個pages
10    for page in pdf.pages:
11        # 取出當前頁表格,結果爲列表
12        d=page.extract_table()
13        # 將列表轉爲數據框
14        df1 = pd.DataFrame(d[1:], columns=d[0]) 
15        #添加至df數據框中
16        df = df.append(df1)

執行代碼後,將得到了df數據框

同事在處理PDF表格數據,而我早早做完在摸魚(步驟詳細附代碼)

是不是so easy 呢?

歡迎點擊左上角關注小編,除了分享技術文章之外還有很多福利,私信學習資料可以領取包括不限於Python實戰演練、PDF電子文檔、面試集錦、學習資料等。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章