溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python如何提取PDF表格數(shù)據(jù)

發(fā)布時(shí)間:2021-08-12 15:01:40 來(lái)源:億速云 閱讀:230 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Python如何提取PDF表格數(shù)據(jù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

從 PDF 表格中獲取數(shù)據(jù)是一項(xiàng)痛苦的工作。不久前,一位開發(fā)者提供了一個(gè)名為 Camelot 的工具,使用三行代碼就能從 PDF 文件中提取表格數(shù)據(jù)。

PDF 文件是一種非常常用的文件格式,通常用于正式的電子版文件。它能夠很好的將不同的排版格式固定下來(lái),形成版面清晰且美觀的展示效果。然而,對(duì)于想要從 PDF 中提取信息的人們來(lái)說(shuō),PDF 是個(gè)噩夢(mèng),尤其是表格。

大量的學(xué)術(shù)報(bào)告、論文、分析文章都使用 PDF 展示其中的表格數(shù)據(jù),但是對(duì)于如果想要直接從表格中復(fù)制數(shù)據(jù)則會(huì)非常麻煩。不久前,有一位開發(fā)者提供了一個(gè)可從文字 PDF 中提取表格信息的工具——Camelot,能夠直接將大部分表格轉(zhuǎn)換為 Pandas 的 Dataframe。

項(xiàng)目地址:https://github.com/camelot-dev/camelot

Camelot 是什么

據(jù)項(xiàng)目介紹稱,Camelot 是一個(gè) Python 工具,用于將 PDF 文件中的表格數(shù)據(jù)提取出來(lái)。

具體而言,用戶可以像使用 Pandas 那樣打開 PDF 文件,然后利用這個(gè)工具提取表格數(shù)據(jù),最后再指定輸出的形式(如 csv 文件)。

代碼示例

項(xiàng)目提供的 PDF 文件如圖所示,假設(shè)用戶需要提取這些文字之間的表格 2-1 中的信息。

Python如何提取PDF表格數(shù)據(jù)

PDF 文件。我們需要提取表格 2-1。

使用 Camelot 提取表格數(shù)據(jù)的代碼如下:

>>> import camelot
>>> tables = camelot.read_pdf('foo.pdf') #類似于Pandas打開CSV文件的形式
>>> tables[0].df # get a pandas DataFrame!
>>> tables.export('foo.csv', f='csv', compress=True) # json, excel, html, sqlite,可指定輸出格式
>>> tables[0].to_csv('foo.csv') # to_json, to_excel, to_html, to_sqlite, 導(dǎo)出數(shù)據(jù)為文件
>>> tables
<TableList n=1>
>>> tables[0]
<Table shape=(7, 7)> # 獲得輸出的格式
>>> tables[0].parsing_report
{
 'accuracy': 99.02,
 'whitespace': 12.24,
 'order': 1,
 'page': 1
}

以下為輸出的結(jié)果,對(duì)于合并的單元格,Camelot 在抽取后做了空行處理,這是一個(gè)穩(wěn)妥的方法。

Python如何提取PDF表格數(shù)據(jù)

安裝方法

項(xiàng)目作者提供了三種安裝方法。首先,你可以使用 Conda 進(jìn)行安裝,這是最簡(jiǎn)單的。

conda install -c conda-forge camelot-py

最流行的安裝方法是使用 pip 安裝。

pip install camelot-py[cv]

還可以從項(xiàng)目中克隆代碼,并使用源碼安裝。

git clone https://www.github.com/camelot-dev/camelot
cd camelot
pip install ".[cv]"

以上是“Python如何提取PDF表格數(shù)據(jù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI