0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PDFから表を抽出し、DataFrameやMarkDown形式に加工する。

Last updated at Posted at 2024-09-22

はじめに

PDF内の表データを取り出して、pandasで解析したりMarkDown形式でできないか調べてみた。pymupdfというPythonライブラリ使う。
その他PythonでPDF処理できる内容については、別記事でまとめているので👇を参照。

目次

ライブラリ:pymupdf

pip install pymupdfでライブラリを入手。このライブラリのfind_table()を使う。参考にしたサイトは下記。ドキュメントから表の内容を抽出する方法 / Page.find_tables()

戻る

使い方

PDFファイルを読み出して、ページ数、テーブル番号を指定すると、配列、DataFrame、MarkDownの形式に出力することができる。

コマンド 内容
pdf = pymupdf.open('ファイル名') PDFファイルを読み出し
tables=pdf[page]find_tables().tables 指定したpageにテーブルがあればオブジェクトを出力する
tables[table].extract() 指定したtableを配列形式で出力する。
tables[table].to_pandas() 指定したtableをPandasのDataFrame形式で出力する。
tables[table].to_markdown() 指定したtableをMarkDown形式で出力する。
import pymupdf 

pdf_file = input('PDFファイル名:')
pdf = pymupdf.open(pdf_file)

for page in pdf:
	#表情報を確認
	tables = page.find_tables().tables
	
	#表があれば
	if(tables):
		print(f'{page=}/{len(tables)=}')
		for table in tables:
			# DataFrame形式
			print(table.to_pandas())
			# MarkDown形式
			print(table.to_markdown())
			# 配列形式
			print(table.extract())

戻る

用途

例えば各企業のIR情報などはPDFで配信されているので、その表から情報を取得したり、下記のような統計サイトのPDF情報からデータを抽出するときに便利と思う。

戻る

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?