Python編程神器:3行代碼提取PDF表格數據

從 PDF 表格中獲取數據是一項痛苦的工作。

不久前,一位開發者提供了一個名為 Camelot 的工具,使用三行代碼就能從 PDF 文件中提取表格數據。

Python編程神器:3行代碼提取PDF表格數據

PDF 文件是一種非常常用的文件格式,通常用於正式的電子版文件。

它能夠很好的將不同的排版格式固定下來,形成版面清晰且美觀的展示效果。

然而,對於想要從 PDF 中提取信息的人們來說,PDF 是個噩夢,尤其是表格。

大量的學術報告、論文、分析文章都使用 PDF 展示其中的表格數據,但是對於如果想要直接從表格中複製數據則會非常麻煩。

不久前,有一位開發者提供了一個可從文字 PDF 中提取表格信息的工具——Camelot,能夠直接將大部分表格轉換為 Pandas 的 Dataframe。

Camelot 是什麼.

據項目介紹稱,Camelot 是一個 Python 工具,用於將 PDF 文件中的表格數據提取出來。

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

代碼示例.

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

Python編程神器:3行代碼提取PDF表格數據

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

使用 Camelot 提取表格數據的代碼如下:

<code>1.  >>> import camelot 
2. >>> tables = camelot.read_pdf('foo.pdf') #類似於Pandas打開CSV文件的形式
3. >>> tables[0].df # get a pandas DataFrame!
4. >>> tables.export('foo.csv', f='csv', compress=True) # json, excel, html, sqlite,可指定輸出格式
5. >>> tables[0].to_csv('foo.csv') # to_json, to_excel, to_html, to_sqlite, 導出數據為文件
6. >>> tables
7. <tablelist>
8. >>> tables[0]
9. <table> # 獲得輸出的格式
10. >>> tables[0].parsing_report
11. {
12. 'accuracy': 99.02,
13. 'whitespace': 12.24,
14. 'order': 1,
15. 'page': 1
16. }

以下為輸出的結果,對於合併的單元格,Camelot 在抽取後做了空行處理,這是一個穩妥的方法。

Python編程神器:3行代碼提取PDF表格數據

安裝方法.

項目作者提供了三種安裝方法。

首先,你可以使用 Conda 進行安裝,這是最簡單的。

<code>1.  conda install -c conda-forge camelot-py /<code>

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

<code>1.  pip install camelot-py[cv] /<code>

還可以從項目中克隆代碼,並使用源碼安裝。

<code>1.  git clone https://www.github.com/camelot-dev/camelot 
2. cd camelot
3. pip install ".[cv]" /<code>

最後小編幫助大家整理了一套python教程,下面展示了部分,希望也能幫助對編程感興趣,想做數據分析,人工智能、爬蟲或者希望從事編程開發的小夥伴,畢竟python工資也還可以,如果能幫到你請點贊、點贊、點贊。

Python編程神器:3行代碼提取PDF表格數據

Python編程神器:3行代碼提取PDF表格數據

Python編程神器:3行代碼提取PDF表格數據

Python編程神器:3行代碼提取PDF表格數據

Python編程神器:3行代碼提取PDF表格數據

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值.

如果你喜歡python,並覺得這篇文章對你有益的話,麻煩多多點贊關注支持!!!!

"/<table>/<tablelist>/<code>


分享到:


相關文章: