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.
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:
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: int64Mari kita telaah baris demi baris:
- Baris 4-10 (
teks_csv = """..."""): data mentah disimpan sebagai string CSV; baris terakhir sengaja mengosongkan nilaijumlahuntuk menirukan data nyata yang tidak rapi. - 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.dtypesmenunjukkan kolom teks bertipestr(perilaku baru pandas 3.0) dan kolomjumlahmenjadifloat64karena mengandung sel kosong. - Baris 16 (
fillna(0).astype(int)): sel kosong diisi0, lalu kolom dikembalikan ke tipe bilangan bulat. - Baris 20-21 (
groupby("kota")["nilai"].sum()): pandas mengelompokkan baris per kota lalu menjumlahkan kolomnilaitiap 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:
| Peran | Contoh penggunaan pandas |
|---|---|
| Analis data | Laporan penjualan, statistik deskriptif, visualisasi ringan |
| Data engineer | Persiapan data, konversi format, bagian kecil dari pipeline ETL |
| Data scientist | Eksplorasi fitur, persiapan dataset untuk model machine learning |
| Peneliti | Pengolahan hasil survei dan eksperimen |
| Pengembang aplikasi | Pemrosesan 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.