Setiap hari, tim di perusahaan ritel, bank, startup, dan lembaga penelitian menghadapi pertanyaan yang serupa: data apa yang tersimpan, apakah datanya sudah rapi, dan informasi apa yang bisa diambil darinya. Pandas dipakai untuk menjawab pertanyaan-pertanyaan tersebut, mulai dari membaca berkas mentah hingga menghasilkan laporan siap presentasi. Chapter ini memetakan bidang penerapan pandas yang paling umum beserta contoh kecilnya. Setelah membaca, kita akan mengenali untuk keperluan apa pandas dipakai dan bagaimana alur kerja tipikalnya.

Analisis Data Sehari-hari #

Kebutuhan analisis harian biasanya berbunyi sederhana: berapa total penjualan bulan ini, produk mana yang paling laris, atau kota mana yang transaksinya menurun. pandas menjawab pertanyaan semacam itu dengan method siap pakai seperti read_csv(), groupby(), dan sum(), tanpa loop manual. Statistik deskriptif seperti rata-rata, median, dan korelasi juga dihitung dengan satu panggilan method. Karena operasi bekerja pada seluruh kolom sekaligus (vectorized), hasilnya konsisten dan kodenya mudah dibaca ulang. Ringkasan kemampuan dasar seperti ini dijelaskan lebih rinci pada halaman Essential basic functionality di dokumentasi resmi.

Membersihkan Data yang Tidak Rapi #

Data dunia nyata jarang rapi: ada sel kosong, baris duplikat, angka yang tersimpan sebagai teks, dan format tanggal yang tidak konsisten. pandas menyediakan method pembersihan seperti dropna(), fillna(), drop_duplicates(), dan astype() untuk menangani kasus-kasus tersebut. Kombinasi method ini biasanya cukup untuk mengubah data mentah menjadi data siap analisis. Panduan lengkapnya ada pada Working with missing data .

Pelaporan dan Otomasi Laporan #

Setelah analisis selesai, hasilnya harus sampai ke pembaca laporan. pandas dapat menulis hasil agregasi ke berkas CSV, Excel dengan to_excel(), JSON, dan Parquet, sehingga laporan bulanan bisa dibuat ulang hanya dengan menjalankan ulang skrip. Method pivot_table() membantu membentuk ringkasan silang, misalnya penjualan per kota per produk. Pola kerja baca bersihkan analisis tulis seperti ini biasanya dijadwalkan lewat cron atau job scheduler agar laporan terbit otomatis. Semua opsi format baca-tulis dirangkum pada IO tools .

Persiapan Data untuk Machine Learning #

Library machine learning seperti scikit-learn menerima data tabular, tetapi model hanya menghitung angka. Tugas pandas pada tahap persiapan adalah mengubah kolom kategori menjadi angka (encoding), mengisi atau menghapus nilai kosong, membuat fitur turunan seperti rasio dan ekstraksi tanggal, lalu memisahkan kolom fitur dari kolom target. Method to_numpy() mengubah DataFrame menjadi ndarray NumPy yang siap masuk ke model. Karena alur persiapan semacam itu hampir selalu diperlukan, pandas menjadi bagian standar di awal pipeline machine learning.

Contoh: Dari Data Mentah Menjadi Laporan #

Contoh berikut merangkum tiga bidang pertama di atas dalam satu skrip kecil. Kita membaca data penjualan yang punya satu sel kosong, membersihkannya, lalu menghitung total nilai penjualan per kota.

python
import io
import pandas as pd

teks_csv = """transaksi,kota,produk,jumlah,harga
1,Jakarta,Kopi Gayo,12,85000
2,Bandung,Teh Melati,30,32000
3,Jakarta,Gula Aren,25,24000
4,Surabaya,Kopi Gayo,8,85000
5,Bandung,Kopi Gayo,,85000
"""

penjualan = pd.read_csv(io.StringIO(teks_csv))
print(penjualan.dtypes)
print()

penjualan["jumlah"] = penjualan["jumlah"].fillna(0).astype(int)
print(penjualan)
print()

penjualan["nilai"] = penjualan["jumlah"] * penjualan["harga"]
laporan = penjualan.groupby("kota", sort=True)["nilai"].sum()
print(laporan)

Output yang Dihasilkan:

text
transaksi      int64
kota             str
produk           str
jumlah       float64
harga          int64
dtype: object

   transaksi      kota      produk  jumlah  harga
0          1   Jakarta   Kopi Gayo      12  85000
1          2   Bandung  Teh Melati      30  32000
2          3   Jakarta   Gula Aren      25  24000
3          4  Surabaya   Kopi Gayo       8  85000
4          5   Bandung   Kopi Gayo       0  85000

kota
Bandung      960000
Jakarta     1620000
Surabaya     680000
Name: nilai, dtype: int64

Mari kita telaah baris demi baris:

  1. Baris 4-10 (teks_csv = """..."""): data mentah disimpan sebagai string CSV; baris terakhir sengaja mengosongkan nilai jumlah untuk menirukan data nyata yang tidak rapi.
  2. Baris 12-13 (pd.read_csv(io.StringIO(teks_csv))): read_csv() menguraikan teks menjadi DataFrame; di proyek nyata argumennya cukup diganti dengan nama berkas atau URL. dtypes menunjukkan kolom teks bertipe str (perilaku baru pandas 3.0) dan kolom jumlah menjadi float64 karena mengandung sel kosong.
  3. Baris 16 (fillna(0).astype(int)): sel kosong diisi 0, lalu kolom dikembalikan ke tipe bilangan bulat.
  4. Baris 20-21 (groupby("kota")["nilai"].sum()): pandas mengelompokkan baris per kota lalu menjumlahkan kolom nilai tiap kelompok; hasilnya adalah laporan total penjualan per kota dalam tiga baris kode.

Bidang Kerja yang Memakai Pandas #

Penerapan pandas tersebar di banyak profesi. Tabel berikut merangkum penggunaan yang paling lazim:

PeranContoh penggunaan pandas
Analis dataLaporan penjualan, statistik deskriptif, visualisasi ringan
Data engineerPersiapan data, konversi format, bagian kecil dari pipeline ETL
Data scientistEksplorasi fitur, persiapan dataset untuk model machine learning
PenelitiPengolahan hasil survei dan eksperimen
Pengembang aplikasiPemrosesan data tabular di skrip backend dan otomasi

Kegunaan yang luas ini memunculkan pertanyaan wajar: apakah semua pekerjaan data memang harus memakai pandas? Jawabannya tidak selalu. Chapter berikutnya membandingkan pandas dengan NumPy agar kita tahu kapan pandas paling unggul dan kapan alat lain lebih tepat.