Pandas memungkinkan kita untuk membaca dan menganalisis dari berbagai jenis data seperti CSV, JSON, XLSX, HTML, XML
Pada artikel sebelumnya kita telah berkenalan dengan fungsi read_csv() untuk membaca file format CSV
Kita akan bahas satu persatu cara membaca format file di Pandas
Contents
CSV
Untuk membaca file CSV kita gunakan fungsi read_csv()
umumnya nilai dalam format CSV dipisahkan oleh koma sehingga parameter separator fungsi read_csv() adalah koma
Jika nilai tidak terpisah oleh koma maka harus ditambahkan parameter separator sesuai dengan bentuk file
Misalnya, file CSV yang dipisah oleh titik koma (;)
Pertama buat file CSV dengan isi sebagai berikut dan simpan dengan nama data.csv
Name;Address
Faqih;Bandung
Ina;Jakarta
Doni;Surabaya
Roni;Bali
Kemudian baca file data.csv di Jupyter Notebook
Jika tidak didefinisikan separatornya maka akan dianggap 1 field seperti pada hasil pertama
Contoh lainnya misal terdapat data di CSV yang tidak memiliki header (update file CSV dengan menghapus headernya seperti ini)
Faqih;Bandung
Ina;Jakarta
Doni;Surabaya
Roni;Bali
Maka saat membaca file parameter headernya harus menjadi None agar baris pertama dari data tidak dianggap sebagai header
Kita juga bisa mendefinisikan header dengan menambahkan parameter names dan memasukkan array untuk setiap fieldnya
Detail parameter lainnya dapat kita ketahui dengan menekan tombol shift+tab di dalam fungsi di Jupyter Notebook
JSON
JSON (JavaScript object notation) adalah format file yang berbentuk semi-structured artinya setiap baris data tidak harus memiliki field yang sama dengan baris data lainnya
Format JSON biasanya sering digunakan untuk menyimpan data dari social media, IoT dan sebagainya yang membutuhkan fleksibilitas penyimpanan data text di file
Pertama kita buat dulu file JSON yang berbentuk JSON array dengan nama data.json dengan isi sebagai berikut
[
{"Name": "Faqih","Address": "Bandung"},
{"Name": "Ina","Address": "Jakarta"},
{"Name": "Doni","Address": "Surabaya"},
{"Name": "Roni","Address": "Bali"}
]
Ada juga JSON yang berbentuk JSON Object seperti ini
{"Name": "Faqih","Address": "Bandung"}
{"Name": "Ina","Address": "Jakarta"}
{"Name": "Doni","Address": "Surabaya"}
{"Name": "Roni","Address": "Bali"}
Bentuk JSON diatas adalah bentuk JSON object dan biasanya ditemui dari sistem yang menghasilkan data secara terus menerus seperti data hasil stream dari IoT
Selanjutnya kita baca file tersebut dengan Pandas dengan menggunakan parameter lines=True
Ada juga JSON yang berbentuk nested yang lebih komplek dan harus dilakukan proses Flatten untuk menormalisasi datanya.. mungkin akan kita bahas di artikel lainnya
XLSX
Format selanjutnya adalah format XLSX atau merupakan format dari Ms Excel
Gunakan fungsi read_excel() untuk membaca isi dari data
Misalnya kita punya File excel dengan nama data.xlsx dengan nama sheet mahasiswa
Cara membacanya di Pandas adalah sebagai berikut
Jika kita mempunyai sheet lainnya dan ingin dibaca cukup ganti saja parameter sheetname sesuai dengan sheet yang ingin dibaca
Misalkan kita tambahkan sheet dosen
HTML
Pandas juga dapat membaca file HTML.. misalnya ingin membaca table yang berada di halaman HTML
Misalnya kita punya Table HTML seperti ini
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<table>
<th>
<td>Name</td>
<td>Address</td>
</th>
<tr>
<td>Faqih</td>
<td>Bandung</td>
</tr>
<tr>
<td>Ina</td>
<td>Jakarta</td>
</tr>
</table>
</body>
</html>
Kita dapat menggunakan read_html() untuk membaca kodenya
Karena hasilnya berupa list kita dapat menambahkan element ke-0 dengan tambahan [0] di belakang fungsi read_html()
Jika kita ingin membaca table dari web cukup diparsing saja url nya di fungsi read_html()
Misalnya kita akan membaca table di link ini https://ngodingdata.com/tutorial-mongodb-memahami-konsep-database-nosql/’ yang di dalam artikel ini terdapat table seperti ini
Kita gunakan fungsi read_html() hasilnya adalah seperti ini
Contoh-contoh diatas adalah cara untuk membaca beberapa jenis format file dengan Python Pandas
Selanjutnya kita akan belajar cara menangani missing value dengan Pandas.. Stay tuned 😀