Salah satu hal pertama yang dilakukan hampir setiap data analyst saat memulai sebuah proyek adalah membuka file CSV. Format ini memang sudah jadi standar paling umum untuk menyimpan dan berbagi data, mulai dari laporan keuangan, data survei, hasil ekspor dari database, hingga dataset publik yang bisa kamu unduh dari Kaggle.
Masalahnya, tidak semua file CSV itu rapi. Ada yang pemisahnya bukan koma, ada yang headernya tidak ada, ada yang encoding-nya aneh dan bikin error saat dibuka. Kalau kamu pernah mengalami hal-hal seperti itu dan tidak tahu cara mengatasinya, artikel ini memang ditulis untuk kamu.
Kita akan bahas cara membaca file CSV menggunakan Pandas, mulai dari yang paling dasar sampai beberapa variasi yang sering ditemui di lapangan.
Apa Itu File CSV?
Sebelum masuk ke kode, penting untuk benar-benar memahami apa yang sedang kita buka.
CSV adalah singkatan dari Comma Separated Values. Sesuai namanya, file ini menyimpan data dalam bentuk teks biasa di mana setiap nilai dipisahkan oleh koma. Kalau kamu buka file CSV dengan Notepad, isinya akan terlihat seperti ini:
nama,usia,kota
Budi,25,Jakarta
Sari,30,Bandung
Rafi,22,SurabayaBaris pertama biasanya berisi nama kolom (disebut header), dan baris-baris berikutnya berisi datanya. Sesederhana itu.
Ketika dibuka menggunakan Pandas, data ini akan otomatis diubah menjadi sebuah DataFrame, yaitu struktur tabel dua dimensi yang jauh lebih mudah diolah dan dianalisis.
Persiapan: Pastikan Pandas Sudah Terinstall
Sebelum mulai, pastikan Pandas sudah ada di lingkungan Python kamu. Buka Command Prompt dan ketik:
pip install pandasKalau muncul pesan “Requirement already satisfied”, berarti Pandas sudah terinstall dan kamu bisa langsung lanjut.
Buka Jupyter Notebook, buat notebook baru, dan kita siap mulai.

Cara Dasar: pd.read_csv()
Cara paling sederhana membaca file CSV di Pandas hanya butuh dua baris kode:
python
import pandas as pd
df = pd.read_csv('nama_file.csv')Sesuaikan nama_file.csv dengan nama dan lokasi file CSV kamu. Kalau file berada di folder yang sama dengan notebook, cukup tulis nama filenya saja. Kalau berbeda folder, tulis path lengkapnya seperti ini:
python
df = pd.read_csv('C:/Users/NamaKamu/Documents/data/nama_file.csv')Setelah dijalankan, cek hasilnya dengan:
python
df.head()
Kalau tabel muncul dengan kolom dan data yang benar, berarti file sudah terbaca dengan sempurna.
Menangani CSV dengan Pemisah Bukan Koma
Ini salah satu hal yang sering bikin bingung pemula. Tidak semua file CSV menggunakan koma sebagai pemisah. Beberapa file, terutama yang diekspor dari software tertentu di Indonesia, menggunakan titik koma (;) sebagai pemisah karena tanda koma sudah dipakai sebagai pemisah desimal.
Kalau kamu membaca file seperti ini tanpa pengaturan tambahan, hasilnya akan berantakan karena Pandas tidak mengenali titik koma sebagai pemisah.
Solusinya adalah menambahkan parameter sep:
python
df = pd.read_csv('nama_file.csv', sep=';')
Untuk file yang menggunakan tab sebagai pemisah (biasanya berekstensi .tsv):
python
df = pd.read_csv('nama_file.csv', sep='\t')
Cara mudah untuk tahu pemisah apa yang dipakai: buka file CSV dengan Notepad, lalu perhatikan karakter yang memisahkan setiap nilai di baris pertama.
Memilih Kolom Tertentu Saja
Bayangkan kamu punya file CSV dengan 30 kolom, tapi kamu hanya butuh 4 di antaranya untuk analisis. Tidak efisien kalau harus memuat semua kolom lalu membuang yang tidak perlu.
Gunakan parameter usecols untuk memilih kolom yang diinginkan sejak awal:
python
df = pd.read_csv('nama_file.csv', usecols=['nama', 'usia', 'kota'])Hasilnya, DataFrame kamu hanya akan berisi tiga kolom tersebut, lebih ringkas dan lebih cepat prosesnya terutama untuk file yang besar.

Mengatur Baris Header
Secara default, Pandas menganggap baris pertama file CSV sebagai nama kolom (header). Tapi ada kalanya file CSV yang kamu terima tidak punya header sama sekali, atau headernya ada di baris kedua karena baris pertama diisi keterangan lain.
Jika file tidak punya header:
python
df = pd.read_csv('nama_file.csv', header=None)Pandas akan otomatis memberi nama kolom dengan angka: 0, 1, 2, dan seterusnya. Kalau mau memberi nama kolom sendiri, tambahkan parameter names:
python
df = pd.read_csv('nama_file.csv', header=None, names=['nama', 'usia', 'kota'])Jika header ada di baris kedua (baris pertama berisi keterangan yang tidak perlu):
python
df = pd.read_csv('nama_file.csv', header=1)Angka 1 menunjukkan bahwa header ada di baris indeks ke-1, yaitu baris kedua (indeks dimulai dari 0).

Menangani Masalah Encoding
Ini adalah masalah yang sering muncul saat membaca file CSV yang dibuat di komputer dengan pengaturan bahasa berbeda, atau file yang berisi karakter khusus seperti huruf beraksara, simbol, atau karakter bahasa daerah.
Error yang biasanya muncul terlihat seperti ini:
UnicodeDecodeError: 'utf-8' codec can't decode byte...Solusi paling umum adalah mencoba encoding latin-1 atau ISO-8859-1:
python
df = pd.read_csv('nama_file.csv', encoding='latin-1')Kalau masih error, coba:
python
df = pd.read_csv('nama_file.csv', encoding='ISO-8859-1')
Tidak ada cara pasti untuk mengetahui encoding sebuah file tanpa mencoba. Tapi urutan yang biasanya berhasil adalah: coba utf-8 dulu (default), kalau error coba latin-1, kalau masih error coba ISO-8859-1.
Membatasi Jumlah Baris yang Dibaca
Kalau file CSV kamu sangat besar, misalnya berisi jutaan baris, memuat semuanya ke dalam memori sekaligus bisa membuat komputer melambat atau bahkan crash. Dalam situasi seperti ini, kamu bisa memuat sebagian data saja untuk keperluan eksplorasi awal.
Gunakan parameter nrows untuk membatasi jumlah baris:
python
df = pd.read_csv('nama_file.csv', nrows=1000)Kode di atas hanya akan membaca 1000 baris pertama dari file. Ini sangat berguna saat kamu hanya ingin mengintip struktur data tanpa harus menunggu lama.

Rangkuman Parameter yang Perlu Diketahui
Berikut ringkasan parameter read_csv() yang paling sering dipakai:
sep → Menentukan karakter pemisah antar nilai. Default-nya koma (,)
usecols → Memilih kolom tertentu yang ingin dimuat
header → Menentukan baris mana yang jadi nama kolom. Default baris pertama (0)
names → Memberi nama kolom secara manual
encoding → Menentukan encoding karakter file
nrows → Membatasi jumlah baris yang dibaca
Kesimpulan
Membaca file CSV dengan Pandas pada dasarnya hanya butuh satu baris kode: pd.read_csv(). Tapi di dunia nyata, data jarang datang dalam kondisi sempurna. Mengetahui berbagai parameter tambahan seperti sep, encoding, usecols, dan nrows adalah perbedaan antara seseorang yang bisa membaca data apa adanya dan seseorang yang bisa menangani hampir semua jenis file CSV yang diberikan kepadanya.
Semakin sering kamu bekerja dengan berbagai jenis file, semakin intuitif pula kamu dalam mengenali masalah dan memilih solusi yang tepat
