因為工作原因,我每天都要接觸大量的數據報表,PDF轉Excel這種格式轉換場景也非常多。
目前市場上有很多pdf工具,大部分是閲讀類,也有支持對pdf的修改、轉換等功能,但這部分工具不少是收費的。
這次介紹一個開源python工具庫-pdfplumber,可以方便地獲取pdf的各種信息,包括文本、表格、圖表、尺寸等。
python中有很多庫可以處理pdf,比如PyPDF2、pdfminer等,那pdfplumber的優勢在哪呢?
首先,pdfplumber能輕鬆訪問有關PDF對象的所有詳細信息,且用於提取文本和表格的方法高級可定製,使用者可根據表格的具體形式來調整參數。
最關鍵的是pdfplumber作者持續在維護該庫,而同樣受歡迎的PyPDF2已經不再維護了。
同其他python庫一樣,pdfplumber支持使用pip安裝,在命令行輸入
pip install pdfplumber
如果遇到安裝慢的問題,可以替換鏡像源,會快很多。
pdfplumber安裝後,用import導入即可使用。
再看下如何用pdfplumber提取pdf表格?
以NBA 2020-2021 常規賽數據作為範例,pdf表格如下:
第一步:使用pdfplumber提取表格文本
# 導入pdfplumber
import pdfplumber
# 讀取pdf文件,保存為pdf實例
pdf = pdfplumber.open("E:\\nba.pdf")
# 訪問第二頁
first_page = pdf.pages[1]
# 自動讀取表格信息,返回列表
table = first_page.extract_table()
輸出:
第二步:整理成dataframe格式,保存為excel
import pandas as pd
# 將列表轉為df
table_df = pd.DataFrame(table_2[1:],columns=table_2[0])
# 保存excel
table_df.to_excel('test.xlsx')
table_df
一個小小的腳本,不到十行代碼,便將pdf表格提取並轉化為dataframe格式,最終保存到excel。
可見pdfplumber處理PDF表格數據還是蠻方便的,而且比較準確。