Langsung ke konten
KamusNgoding
Menengah Python 3 menit baca

Panduan Praktis Python: Membaca dan Menulis File CSV untuk Pengolahan Data

#python #csv #file handling #data processing #pandas

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']}")

Modul csv juga mendukung penulisan file CSV. Berikut adalah contoh menulis data ke file CSV.

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.

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)
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() dan csv.DictReader() untuk membaca CSV
  • csv.writer() dan csv.DictWriter() untuk menulis CSV
  • pandas.read_csv() dan DataFrame.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!

Artikel Terkait