Python-Camelot:用三行代碼提取PDF表格數(shù)據(jù)

來源 : 機(jī)器之心
從 PDF 表格中獲取數(shù)據(jù)是一項(xiàng)痛苦的工作。不久前,一位開發(fā)者提供了一個(gè)名為 Camelot 的工具,使用三行代碼就能從 PDF 文件中提取表格數(shù)據(jù)。
PDF 文件是一種非常常用的文件格式,通常用于正式的電子版文件。它能夠很好的將不同的排版格式固定下來,形成版面清晰且美觀的展示效果。然而,對(duì)于想要從 PDF 中提取信息的人們來說,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ù)提取出來。
具體而言,用戶可以像使用 Pandas 那樣打開 PDF 文件,然后利用這個(gè)工具提取表格數(shù)據(jù),最后再指定輸出的形式(如 csv 文件)。
代碼示例
項(xiàng)目提供的 PDF 文件如圖所示,假設(shè)用戶需要提取這些文字之間的表格 2-1 中的信息。

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
1>
>>>?tables[0]
7,?7)>?#?獲得輸出的格式
>>>?tables[0].parsing_report
{
????'accuracy':?99.02,
????'whitespace':?12.24,
????'order':?1,
????'page':?1
}
以下為輸出的結(jié)果,對(duì)于合并的單元格,Camelot 在抽取后做了空行處理,這是一個(gè)穩(wěn)妥的方法。

安裝方法
項(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]"
往期推薦
1、M1 Max再強(qiáng),也沒Windows用!微軟:拒絕提供
3、「摸魚」神器來了,Python 實(shí)現(xiàn)人臉監(jiān)測(cè)制作神器
4、影響眾多編程語言、引發(fā)供應(yīng)鏈攻擊,劍橋大學(xué)發(fā)布「木馬源」漏洞
5、欠債3000億,宣布破產(chǎn)!昔日民族品牌,為何總淪為反面教材?
6、如何防止果照外泄?自己先上傳就OK!扎克伯格這波操作給網(wǎng)友整不會(huì)了
點(diǎn)擊關(guān)注公眾號(hào),閱讀更多精彩內(nèi)容 
瀏覽
73評(píng)論圖片表情
免费看日韩黄色电影
|
五月天六月色婷婷在线
|
黄页视频网站
|
黄色美女毛片
|
午夜福利视频日本一区二区欲望
|
