PDFを開いて、python pandas=を使用して読み込むか、pandasこの機能?
これは不可能です。 PDFは印刷用のデータ形式です。そのため、テーブル構造は失われます。運がよければpypdfでテキストを抽出し、以前のテーブル列を推測できます。
1回限りの場合は、PDFテーブルからデータをテキストファイルにコピーし、フォーマットして(検索と置換、Notepad ++マクロ、スクリプトを使用)、保存できます。 CSVファイルとしてそれをパンダにロードします。
スケーラブルな方法でこれを行う必要がある場合は、次の製品を試してください: http://tabula.technology/ 。まだ使用していないので、どれだけうまく機能するのかはわかりませんが、必要に応じて検討できます。
タブラを使用できます https://blog.chezo.uno/tabula-py-extract-table-from-pdf-into-python-dataframe-6c7acfa5f302
from tabula import read_pdf
df = read_pdf('data.pdf')
リンクでもっと見ることができます!
PDF=からテーブルデータをコピーし、Excelファイルに貼り付けます(通常は複数の列ではなく単一の列として貼り付けられます)。次に、FlashFillを使用します(Excel 2016で利用可能、以前のExcelについては不明)バージョン)を使用して、PDFで最初に表示された列にデータを分離します。プロセスは高速で簡単です。次に、Pandasを使用してExcelデータを圧縮します。
私がする時
from tabula import read_pdf
import pandas as pd
df = read_pdf('C:\\Users\\sreeraj.va\\Desktop\\kkrvspnj.pdf')
df.shape
>> (68, 10)
しかし、私のdfは(20000,10)の形状です。ノートブックでは、最初のページのみの形状を示しています。なんでそうなの?
私はCamelot( https://camelot-py.readthedocs.io/en/master/ )でいくつかのテストを行っており、非常にうまくいきます多くの状況で良い。また、デフォルトのパラメーターが機能しない場合は、いくつかのパラメーターを調整してみてください。
これはTabulaに似ていますが、異なるアルゴリズムを使用します(TabulaはPDFでベクターデータを使用し、テーブルの行をラスターします。CamelotはHough Transform)なので、両方を試して、最適なものを見つけることができます。
どちらにもWebバージョンがあるため、いくつかの例を使用して、どちらがアプリケーションに最適かを判断できます。
tabula-py
という新しいバージョンのtabula
があります
pip install tabula-py
.read_pdf
メソッドは古いバージョンと同じように機能します。ドキュメントはこちらです https://pypi.org/project/tabula-py/