Pandas Baca PDF

Kode Lima Detik

import tabula
import pandas as pd

file_path = 'data.pdf'
df_list = tabula.read_pdf(file_path)
df_list[0]

Ref: https://tabula-py.readthedocs.io/en/latest/


Jika hari sedang hujan, kita akan menemui tabel data namun disimpan dalam bentuk pdf.

Beberapa pdf editor punya kemampuan untuk mengekstraksi berkas pdf menjadi Excel. Namun jika akan diolah dengan pandas, tentu lebih menyenangkan jika proses ekstraksi itu bisa diotomasi menggunakan python.

tabula-py

Adalah pahlawan kita!

Instalasi

Selalu mudah

pip install tabula-py

Jika pembaca mendapatkan masalah saat penggunaan di Windows 10, bisa jadi karena Java belum terinstall atau tidak ada di path. Silahkan mengikuti langkah di sini untuk memperbaiki.

Penggunaan

Kita akan membaca berkas pdf dari sini. Berkas data.pdf dengan tampilan seperti ini pada halaman satu.

Sedangkan halaman dua seperti ini.

Satu Halaman

Jika kita gunakan kode seperti ini.

file1 = 'data.pdf'
df_list = tabula.read_pdf(file1)
df_list[0]

Maka hanya halaman pertama yang akan diproses.

Apakah df_list[0] adalah sebuah dataframe?

isinstance(df_list[0], pd.DataFrame)

Semua Halaman

Kode di atas hanya akan memproses satu halaman dan menghasilkan satu dataframe. Jika ingin mendapatkan semua halaman maka gunakan parameter pages.

file1 = 'data.pdf'
df_list = tabula.read_pdf(file1, pages='all')
df_list[0]

Hasilnya untuk df_list[0] sama dengan sebelumnya, namun index kedua telah terisi dengan tabel pada halaman nomor dua.

Catatan

Selain pages, tabula-py menyediakan beberapa parameter untuk digunakan, silahkan membaca bagian options dari notebook ini.

Berkas pdf di atas adalah skenario terbaik tabula-py dimana tidak diperlukan perbaikan atas data yang diperoleh. Untuk skenario lebih rumit (dan lebih nyata) silahkan membaca tulisan ini.


Cover Photo by Austin Distel on Unsplash

Leave a Reply

Your email address will not be published. Required fields are marked *