【python】PDFの読み込みと管理

IT技術

Pythonを使用してPDFを読み込み、データの管理や解析を行うことは多くの場面で役立ちます。この記事では、PythonでPDFを読み込む方法から、データを加工・出力する方法までを詳しく解説します。

スポンサーリンク

1. PDF読み込みの道筋

PDFは非常に普及しているドキュメント形式ですが、構造が複雑なため、データの読み込みや解析には特別なライブラリが必要です。本記事では以下のステップで進めます:

  1. PDF読み込みの準備
  2. PDFからデータを抽出
  3. 表形式のデータをpandasデータフレームとして読み込む
  4. 抽出したデータを保存・出力

これらのステップを順を追って解説します。

2-1. PDFの読み込み

まず、PythonでPDFを読み込むためのライブラリをインストールします。一般的にはPyMuPDFpdfplumberPyPDF2といったライブラリが利用されます。今回は、使いやすいpdfplumberを使用します。

pip install pdfplumber

次に、基本的なPDF読み込みの例を示します。

import pdfplumber

# PDFファイルのパスを指定
pdf_path = 'example.pdf'

# PDFファイルを読み込み
with pdfplumber.open(pdf_path) as pdf:
    # 1ページ目の内容を取得
    first_page = pdf.pages[0]
    print(first_page.extract_text())

このスクリプトは、PDFの最初のページからテキスト内容を抽出し、コンソールに表示します。



2-2. 読み込み位置の設定方法

PDFには構造があり、特定のページや特定の領域からデータを抽出したい場合があります。pdfplumberではページや特定の矩形領域を指定してデータを抽出することができます。

例えば、2ページ目の上半分のデータを読み込みたい場合は以下のようにします:

with pdfplumber.open(pdf_path) as pdf:
    # 2ページ目の内容を取得
    second_page = pdf.pages[1]

    # 読み込み領域を指定(左上のx, y座標、右下のx, y座標)
    crop_area = (0, 0, second_page.width, second_page.height / 2)

    # 領域内のテキストを抽出
    cropped_page = second_page.within_bbox(crop_area)
    print(cropped_page.extract_text())

2-3. 表をpandasに読み込む方法

PDFの中には表形式のデータが含まれることが多く、それらをpandasデータフレームに変換することも可能です。pdfplumberを使うと、表形式のデータも簡単に抽出できます。

import pandas as pd

with pdfplumber.open(pdf_path) as pdf:
    first_page = pdf.pages[0]
    tables = first_page.extract_tables()

    # 最初の表をデータフレームに変換
    df = pd.DataFrame(tables[0])
    print(df)

このコードでは、PDFの最初のページにある最初の表をpandasデータフレームに変換します。extract_tables()メソッドはページから表をリスト形式で抽出します。



3. 出力方法

抽出したデータをCSVファイルやExcelファイルに保存することも簡単です。pandasデータフレームを使用することで、以下のように保存できます。

# データフレームをCSVファイルとして保存
df.to_csv('output.csv', index=False)

# データフレームをExcelファイルとして保存
df.to_excel('output.xlsx', index=False)

4. まとめ

Pythonを使用してPDFを読み込み、データを抽出し、管理する方法を紹介しました。pdfplumberを使用することで、特定のページや領域を取得し、表形式のデータをpandasデータフレームに変換する手順を説明しました。最後に、抽出したデータをCSVやExcelファイルに保存する方法も解説しました。PDF解析の自動化を行う際の参考にしていただければ幸いです。

コメント

タイトルとURLをコピーしました