Pandas read_csv: Baca File CSV di Python untuk Analis
TL;DR
pandas.read_csv() adalah fungsi buat baca file CSV jadi DataFrame di Python cuma dengan satu baris kode. Bentuk dasarnya df = pd.read_csv('data.csv'). Kamu bisa atur pemisah lewat sep, encoding buat file berkarakter khusus, dan usecols buat ambil kolom tertentu aja.
pandas.read_csv() adalah fungsi buat baca file CSV jadi DataFrame di Python cuma dengan satu baris kode. Bentuk dasarnya df = pd.read_csv('data.csv').
Hampir semua analisis data di Python mulai dari sini. Data penjualan, ekspor dari database, hasil download dashboard, semuanya sering datang dalam format CSV. Di bawah ini kamu bakal lihat cara pakai read_csv, parameter yang paling sering dibutuhin, sampai cara benerin error encoding yang bikin frustasi.
Apa itu pandas read_csv?
read_csv adalah fungsi pandas yang baca file berformat CSV lalu ngubahnya jadi DataFrame, yaitu tabel dengan baris dan kolom yang siap kamu olah. Sekali dibaca, kamu bisa filter, hitung, gabung, atau visualisasikan datanya. Fungsi ini pintu masuk paling umum buat kerja data di Python.
Gimana cara pakai read_csv paling dasar?
Pertama import pandas, lalu panggil read_csv dengan path file:
import pandas as pd
df = pd.read_csv('penjualan.csv')
print(df.head())
df.head() nampilin 5 baris pertama biar kamu bisa cek datanya kebaca bener. Kalau file ada di folder lain, kasih path lengkap, misalnya 'data/penjualan.csv'.
Parameter read_csv yang paling sering dipakai
Data di dunia nyata jarang rapi. Parameter ini yang bakal sering kamu butuh:
| Parameter | Gunanya | Contoh |
|---|---|---|
| sep | Ganti karakter pemisah | sep=';' |
| encoding | Atur encoding file | encoding='latin-1' |
| usecols | Pilih kolom tertentu | usecols=['tanggal','total'] |
| nrows | Batasi jumlah baris | nrows=1000 |
| parse_dates | Baca kolom sebagai tanggal | parse_dates=['order_date'] |
| dtype | Paksa tipe data kolom | dtype={'kode':str} |
Salah satu yang paling penting buat data Indonesia adalah dtype={'kode':str}. Ini jaga kode produk atau nomor HP yang diawali angka 0 biar nggak ilang nolnya.
Contoh kasus: baca data penjualan toko_berkah
Anggap kamu punya file toko_berkah.csv hasil ekspor dari Excel. File-nya pakai pemisah titik koma dan ada kolom tanggal serta kode produk yang diawali nol:
import pandas as pd
df = pd.read_csv(
'toko_berkah.csv',
sep=';',
encoding='latin-1',
parse_dates=['order_date'],
dtype={'kode_produk': str}
)
print(df.shape)
print(df.dtypes)
Dengan setelan ini, kolom tanggal langsung jadi tipe datetime dan kode produk tetap utuh. Misal file-nya punya 5.000 baris transaksi, df.shape bakal ngasih (5000, 6), artinya 5.000 baris dan 6 kolom. Dari titik ini kamu udah siap ngitung total omzet per bulan atau nyari produk terlaris.
Habis dibaca, kamu bisa lanjut agregasi pakai groupby. Cek caranya di artikel pandas read_excel kalau sumber datamu berupa file Excel, bukan CSV.
Gimana cara benerin error UnicodeDecodeError?
Ini error paling sering waktu baca CSV dari Excel Indonesia. Penyebabnya encoding file bukan utf-8. Coba urutan ini:
- Tambahin
encoding='latin-1'. Ini nutupin mayoritas kasus. - Kalau masih gagal, coba
encoding='cp1252'. - Masih error juga? Buka file di editor teks buat cek encoding aslinya, lalu pakai nilai itu.
Kesalahan umum saat pakai read_csv
- Semua kolom nyatu jadi satu - pemisahnya bukan koma. Tambahin
sep=';'. - Nol di depan kode ilang - pandas baca sebagai angka. Paksa jadi teks pakai
dtype=str. - Tanggal kebaca sebagai teks - lupa
parse_dates. Tambahin nama kolomnya. - FileNotFoundError - path salah. Cek apakah file ada di folder kerja yang bener pakai
import os; os.getcwd().
FAQ
Pertanyaan yang sering muncul soal read_csv ada di bagian bawah ini.
Kenapa read_csv kamu error UnicodeDecodeError?
Error itu muncul karena encoding file nggak cocok sama default pandas (utf-8). File dari Excel Indonesia sering pakai encoding latin-1 atau cp1252. Coba tambahin parameter encoding, misalnya pd.read_csv('data.csv', encoding='latin-1'). Kalau masih gagal, buka file pakai editor teks buat cek encoding aslinya, lalu sesuaikan.
Gimana cara baca CSV yang pemisahnya titik koma?
File CSV dari Excel versi Indonesia sering pakai titik koma, bukan koma. Tambahin parameter sep, jadi pd.read_csv('data.csv', sep=';'). Kalau nggak, semua kolom bakal nyatu jadi satu. Pandas juga punya sep=None dengan engine='python' buat nebak pemisah otomatis, walau kadang kurang akurat buat data aneh.
Bisa nggak read_csv baca cuma sebagian kolom atau baris?
Bisa. Pakai usecols buat pilih kolom tertentu, misalnya usecols=['tanggal', 'total']. Buat batasi jumlah baris, pakai nrows, misalnya nrows=1000 buat ngintip file besar tanpa muat semuanya. Ini kepake banget waktu filenya gede dan kamu cuma butuh sampel buat ngecek strukturnya dulu.
Gimana biar kolom tanggal langsung kebaca sebagai tanggal?
Tambahin parameter parse_dates berisi nama kolom tanggal, misalnya parse_dates=['order_date']. Pandas bakal ngubah kolom itu jadi tipe datetime, jadi kamu bisa langsung filter per bulan atau hitung selisih hari. Tanpa ini, tanggal kebaca sebagai teks biasa dan susah diolah buat analisis waktu.
Penutup
read_csv itu satu baris yang buka pintu ke seluruh analisis data di Python. Inget parameter kuncinya: sep buat pemisah, encoding buat file rewel, dtype buat jaga kode angka, dan parse_dates buat kolom tanggal.
Mau lanjut belajar olah DataFrame setelah datanya kebaca? Kulik latihan Python data di NgulikData, atau baca dokumentasi resmi di pandas.pydata.org. Buat sumber data dari database SQL, lihat juga teknik di SQL date bucketing.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
NumPy random: Membuat Data Acak untuk Simulasi
NumPy random bikin angka acak buat simulasi dan data dummy. Ini cara pakai default_rng, atur seed, dan generate sampel yang bisa diulang.
NumPy where: Operasi Bersyarat pada Array
np.where milih nilai berdasarkan kondisi ke seluruh array sekaligus, tanpa loop. Ini cara pakainya buat kolom bersyarat dan cari posisi elemen.
NumPy Broadcasting: Operasi Array Beda Ukuran (2026)
Broadcasting bikin NumPy bisa ngoperasiin array beda ukuran tanpa loop. Ini aturan bentuknya dan contoh pakai data nyata.