Open2

PDFからのデータ抽出

nabetsunabetsu

参考資料

まとめ

ライブラリ

nabetsunabetsu

tabula-py

準備

以下の2つが必要。

  • Javaのインストール
  • tabula-pyのインストール
# Javaのインストール確認
!java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.18.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.18.04, mixed mode, sharing)

# tabula-pyのインストール
!pip install -q tabula-py

基本的な使い方

以下のようにread_pdfでPDFファイルを指定するとページ数分のDataFrameが入った配列を返してくれるので、それぞれのDataFrameに対して処理をしていけばOK。

import tabula

pdf_path = "https://github.com/chezou/tabula-py/raw/master/tests/resources/data.pdf"
dfs = tabula.read_pdf(pdf_path, stream=True)

read_pdfのオプション

  • pages
    • 'all'を指定すれば全ページを、個別のページを指定すれば指定したページだけ読み込んでくれる
  • lattice
    • Trueを指定すれば枠線をテーブルの判定条件として利用する

上記2つのオプションを組み合わせるとこんな感じになる。

dummy = tabula.read_pdf('./dummies/dummy.pdf', lattice=True, pages='all')