Panduan Praktis Python: Membaca dan Menulis File CSV untuk Pengolahan Data
Pendahuluan
File CSV (Comma-Separated Values) adalah salah satu format data paling populer di dunia pemrograman dan analisis data. Format ini sederhana, mudah dibaca manusia, dan didukung oleh hampir semua aplikasi spreadsheet dan database. Sebagai developer Python, kemampuan membaca dan menulis file CSV adalah keterampilan dasar yang akan sering kamu gunakan—mulai dari impor data, eksport laporan, hingga integrasi antar sistem.
Python menyediakan dua pendekatan utama untuk bekerja dengan CSV: modul bawaan csv yang ringan dan cepat, serta library pandas yang kuat untuk analisis data kompleks. Artikel ini akan membahas kedua pendekatan tersebut dengan contoh praktis yang bisa langsung kamu terapkan di proyek nyata.
Membaca File CSV dengan Modul csv
Modul csv adalah bagian dari Python standard library, jadi tidak perlu instalasi tambahan. Modul ini cocok untuk file CSV sederhana hingga menengah yang tidak memerlukan manipulasi data kompleks.
Membaca CSV Dasar
Berikut contoh membaca file CSV dengan csv.reader():
import csv
# Baca file CSV
with open('data_karyawan.csv', 'r', encoding='utf-8') as file:
csv_reader = csv.reader(file)
# Lewati header (baris pertama)
header = next(csv_reader)
print(f"Kolom: {header}")
# Baca setiap baris
for row in csv_reader:
print(f"Nama: {row[0]}, Posisi: {row[1]}, Gaji: {row[2]}")
Dengan asumsi file data_karyawan.csv berisi:
Nama,Posisi,Gaji
Budi Santoso,Backend Developer,12000000
Siti Nurhaliza,Frontend Developer,11000000
Ahmad Fauzi,DevOps Engineer,13000000
Membaca CSV sebagai Dictionary
Untuk kode yang lebih mudah dibaca, gunakan csv.DictReader() yang mengubah setiap baris menjadi dictionary dengan key dari header:
import csv
with open('data_karyawan.csv', 'r', encoding='utf-8') as file:
csv_reader = csv.DictReader(file)
for row in csv_reader:
print(f"Nama: {row['Nama']}, Posisi: {row['Posisi']}, Gaji: {row['Gaji']}")
Menulis File CSV dengan Modul csv
Modul csv juga mendukung penulisan file CSV. Berikut adalah contoh menulis data ke file CSV.
Menulis CSV Dasar
Berikut contoh menulis file CSV dengan csv.writer():
import csv
# Data untuk ditulis
data = [
['Nama', 'Posisi', 'Gaji'],
['Budi Santoso', 'Backend Developer', 12000000],
['Siti Nurhaliza', 'Frontend Developer', 11000000],
['Ahmad Fauzi', 'DevOps Engineer', 13000000]
]
# Tulis file CSV
with open('data_karyawan_baru.csv', 'w', encoding='utf-8', newline='') as file:
csv_writer = csv.writer(file)
# Tulis semua baris sekaligus
csv_writer.writerows(data)
Catatan penting: Parameter newline='' mencegah baris kosong tambahan di Windows.
Menulis CSV sebagai Dictionary
Untuk menulis data yang lebih struktural, gunakan csv.DictWriter():
import csv
# Data untuk ditulis
data = [
{'Nama': 'Budi Santoso', 'Posisi': 'Backend Developer', 'Gaji': 12000000},
{'Nama': 'Siti Nurhaliza', 'Posisi': 'Frontend Developer', 'Gaji': 11000000},
{'Nama': 'Ahmad Fauzi', 'Posisi': 'DevOps Engineer', 'Gaji': 13000000}
]
# Tulis file CSV
with open('data_karyawan_baru.csv', 'w', encoding='utf-8', newline='') as file:
fieldnames = ['Nama', 'Posisi', 'Gaji']
csv_writer = csv.DictWriter(file, fieldnames=fieldnames)
# Tulis header
csv_writer.writeheader()
# Tulis setiap baris data
for row in data:
csv_writer.writerow(row)
Menggunakan Library pandas untuk Pemrosesan Data CSV
Library pandas adalah pilihan yang sangat baik untuk pemrosesan data yang lebih kompleks. Pandas menyediakan struktur data DataFrame yang powerful untuk manipulasi, filtering, dan analisis data.
Instalasi Pandas
Jika belum terinstal, install pandas terlebih dahulu:
pip install pandas
Membaca CSV dengan pandas
import pandas as pd
# Baca file CSV
df = pd.read_csv('data_karyawan.csv')
print(df)
# Output:
# Nama Posisi Gaji
# 0 Budi Santoso Backend Developer 12000000
# 1 Siti Nurhaliza Frontend Developer 11000000
# 2 Ahmad Fauzi DevOps Engineer 13000000
# Akses kolom tertentu
print(df['Nama'])
# Filter data berdasarkan kondisi
high_salary = df[df['Gaji'] > 11500000]
print(high_salary)
Menulis CSV dengan pandas
import pandas as pd
# Buat DataFrame dari dictionary
data = {
'Nama': ['Budi Santoso', 'Siti Nurhaliza', 'Ahmad Fauzi'],
'Posisi': ['Backend Developer', 'Frontend Developer', 'DevOps Engineer'],
'Gaji': [12000000, 11000000, 13000000]
}
df = pd.DataFrame(data)
# Tulis ke CSV (tanpa index)
df.to_csv('data_karyawan_pandas.csv', index=False)
# Tulis dengan custom separator (misal semicolon)
df.to_csv('data_karyawan_semicolon.csv', sep=';', index=False)
Operasi Lanjutan dengan Pandas
Pandas sangat powerful untuk analisis data:
import pandas as pd
# Baca CSV
df = pd.read_csv('data_karyawan.csv')
# Hitung statistik deskriptif
print(df['Gaji'].describe())
# Tambah kolom baru
df['Gaji_USD'] = df['Gaji'] / 15000 # Konversi ke USD
# Sortir berdasarkan gaji
df_sorted = df.sort_values('Gaji', ascending=False)
# Grouping data
# Jika ada kolom Department, bisa grouping seperti ini:
# avg_salary = df.groupby('Department')['Gaji'].mean()
# Simpan hasil
df_sorted.to_csv('data_karyawan_sorted.csv', index=False)
Kapan Menggunakan csv vs pandas?
Gunakan modul csv jika:
- File CSV sederhana dan tidak perlu manipulasi kompleks
- Ukuran file sangat besar (pandas lebih berat di memori)
- Tidak butuh dependency eksternal
Gunakan pandas jika:
- Perlu analisis data, filtering, atau agregasi
- Bekerja dengan data tabular yang kompleks
- Ingin integrasi dengan ekosistem data science (NumPy, Matplotlib, dll)
Kesimpulan
Menggunakan modul csv dan library pandas dalam Python memungkinkan kita untuk bekerja dengan file CSV dengan efektif. Modul csv cocok untuk operasi sederhana dan cepat, sementara pandas menawarkan kemampuan analisis data yang jauh lebih kuat.
Ringkasan:
csv.reader()dancsv.DictReader()untuk membaca CSVcsv.writer()dancsv.DictWriter()untuk menulis CSVpandas.read_csv()danDataFrame.to_csv()untuk operasi data kompleks- Pilih tools sesuai kompleksitas kebutuhan proyek Anda
Sekarang kamu sudah siap untuk memproses dan mengelola file CSV menggunakan Python!