Materi
pd.read_csv membaca berkas CSV menjadi DataFrame. Di browser tidak ada berkas, jadi teks CSV-nya dibungkus io.StringIO agar pandas membacanya seolah-olah berkas. Di komputer kerja, argumennya cukup nama berkasnya saja.
import pandas as pd
import io
CSV = """produk,harga
Pulpen Gel,4000
Map Plastik,6000"""
df = pd.read_csv(io.StringIO(CSV))
print(df.shape) # (2, 2)Baris pertama CSV dipakai sebagai nama kolom. Kolom yang seluruh isinya angka dibaca sebagai bilangan; kolom lain dibaca sebagai teks, termasuk kolom tanggal. df.dtypes memperlihatkan hasil pembacaan itu.
Contoh di luar latihan: berkas ekspor kasir yang memakai titik koma sebagai pemisah dibaca dengan menambahkan argumen sep. Berkas yang baris pertamanya berisi judul laporan, bukan nama kolom, dilewati dengan argumen skiprows.
Kesalahan umum: menyerahkan teks CSV langsung ke read_csv tanpa io.StringIO. pandas memperlakukan teks itu sebagai nama berkas dan berhenti dengan FileNotFoundError. Kesalahan kedua: berkas berpemisah titik koma dibaca tanpa sep, sehingga seluruh baris masuk ke satu kolom.
Angka bergaya Indonesia memakai titik sebagai pemisah ribuan dan koma sebagai desimal. Tanpa keterangan, read_csv membaca 2.500 sebagai dua koma lima, dan kolom itu tetap terlihat berupa angka sehingga kekeliruannya tidak terasa. Argumen thousands="." memberi tahu pemisah ribuannya, dan decimal="," memberi tahu tanda desimalnya.