qshinoの日記

Powershell関係と徒然なこと

table in pdf to pandas, python

Table in pdf to pandas

PDF内の表をpandas fataframeにしてくれるモジュール taburaを使う。

tabulaのインストール

pip install tabula-py

java必須。

import pandas.as pd
import tabura

import re

file = 'a.pdf'
page = '10'

dl = tabula.read_pdf(file, lattice=True,  pages = page) 

# 列名に\rがあれば削除。


for d in dl:
  newcol = {}
  for col in d.columns:
    if re.search('\r', col):
      newcol[col]=col.replace('\r','')
    d.rename( columns=newcol)

for.d.in dl:
  display(d)

pages は、'all'や [1,2,3]等のリストも可。 latticeは罫線がある表。lattice=Falseの時は、罫線なしの表も読み取る。

https://qiita.com/konitech913/items/4ef70e1f7753c824b40f

tabula

import tabula 

# Read pdf into list of DataFrame df = 

tabula.read_pdf("test.pdf", pages='all') 

# Read remote pdf into list of DataFrame 

df2 = tabula.read_pdf("https://github.com/tabulapdf/tabula-java/raw/master/src/test/resources/technology/tabula/arabic.pdf") 

dl3 = tabula(file, multiple_tables=True, lattice=True, pags=[1,3,5])


# convert PDF into CSV file 

tabula.convert_into("test.pdf", "output.csv", output_format="csv", pages='all') 

# convert all PDFs in a directory tabula.convert_into_by_batch("input_directory", output_format='csv', pages='all') 

https://pypi.org/project/tabula-py/