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')