Spreadsheet adalah rumah pertama analisis data bagi banyak orang, dan kebiasaan di dalamnya membawa sejauh mana pun seseorang bekerja dengan data. pandas menjalankan gagasan yang sama — tabel, kolom, formula, pivot — dengan tiga perbedaan prinsip: kolom punya nama alih-alih huruf, satu formula ditulis untuk seluruh kolom alih-alih satu sel, dan setiap langkah membentuk tabel baru alih-alih menimpa sel. Peta ini membantu membaca kode pandas dengan kosakata spreadsheet yang sudah dikuasai. Contoh di bawah memakai tabel stok kecil sehingga setiap padanan terasa familier.
VLOOKUP dan Formula Kolom #
VLOOKUP mencari satu nilai di tabel referensi dan mengembalikan kolom tertentu; di pandas, pekerjaan itu menjadi merge() pada kolom kunci yang mengembalikan seluruh baris pasangannya. Formula per sel seperti =B2*C2 menjadi operasi antar kolom: stok["unit"] * stok["harga"] menghasilkan kolom baru untuk semua baris sekaligus, tanpa menyalin formula ke bawah. SUMIFS yang menjumlahkan dengan syarat menjadi loc dengan mask boolean diikuti sum() — syaratnya ditulis sekali, bukan diubah-ubah di tiap baris.
import pandas as pd
stok = pd.DataFrame(
{
"produk": ["Kopi Gayo", "Teh Melati", "Gula Aren"],
"unit": [120, 85, 60],
"harga": [45_000, 42_000, 32_000],
}
)
# VLOOKUP: mengambil baris produk berdasarkan nama
dipilih = pd.DataFrame({"produk": ["Teh Melati", "Kopi Gayo"]})
print(dipilih.merge(stok, on="produk"))
# SUMIFS: menjumlahkan unit hanya untuk produk tertentu
kopi = stok.loc[stok["produk"] == "Kopi Gayo", "unit"].sum()
print("\ntotal unit Kopi Gayo:", kopi)
# Formula kolom: =B2*C2 ditulis sekali untuk seluruh baris
stok["omzet"] = stok["unit"] * stok["harga"]
print("\nstok dengan kolom omzet:")
print(stok)
# Pivot Table: omzet total per kota dan per kategori
penjualan = pd.DataFrame(
{
"kota": ["Jakarta", "Bandung", "Jakarta", "Bandung"],
"kategori": ["kopi", "kopi", "teh", "teh"],
"omzet": [450_000, 380_000, 210_000, 260_000],
}
)
print("\npivot omzet:")
print(
penjualan.pivot_table(
index="kota", columns="kategori", values="omzet", aggfunc="sum"
)
)Output yang Dihasilkan:
produk unit harga
0 Teh Melati 85 42000
1 Kopi Gayo 120 45000
total unit Kopi Gayo: 120
stok dengan kolom omzet:
produk unit harga omzet
0 Kopi Gayo 120 45000 5400000
1 Teh Melati 85 42000 3570000
2 Gula Aren 60 32000 1920000
pivot omzet:
kategori kopi teh
kota
Bandung 380000 260000
Jakarta 450000 210000Mari kita telaah baris-baris kuncinya:
- Baris 12-13:
merge(on="produk")menemukan dua baris yang dipilih — padanan VLOOKUP yang sekaligus mengembalikan semua kolom referensi. - Baris 16-17: mask boolean plus
sum()adalah SUMIFS satu syarat; hasilnya angka tunggal120. - Baris 20: perkalian dua Series menghasilkan kolom
omzetpenuh tanpa formula disalin per baris. - Baris 33-37:
pivot_table(index="kota", columns="kategori", values="omzet", aggfunc="sum")meniru Pivot Table dengan Rows, Columns, dan Values masing-masing.
Pivot Table dan Autofilter #
Pivot Table spreadsheet memetakan satu lawan satu ke pivot_table(): area Rows menjadi index, Columns menjadi columns, Values menjadi values, dan agregasinya menjadi aggfunc. Total baris dan kolom otomatis dari spreadsheet setara dengan margins=True. Autofilter pada header kolom menjadi mask boolean atau query(), dan sortir multi-kolom menjadi sort_values([kolom1, kolom2]). Salah satu peningkatan rasa: karena setiap langkah menghasilkan DataFrame baru, tidak ada risiko menginjak rumus tetangga — pola kerja spreadsheet yang paling rawan hilang begitu saja.
Kapan Spreadsheet, Kapan pandas #
Batannya nyaman diingat: spreadsheet unggul saat data puluhan ribu baris dan tangan memang lebih cepat dari kode, sedangkan pandas unggul saat langkah harus diulang, dicatat, dan diuji ulang. Tiga sinyal pindah ke pandas: langkah manual yang sama sudah dilakukan tiga kali, file mulai tersendat saat dibuka, dan data harus digabung dari beberapa sumber. Aturan bahasanya pun sederhana — CSV adalah bahasa pertemuan kedua dunia; pd.read_csv() dan to_csv() membuat tabel spreadsheet dan pandas saling menukar tanpa konversi apa pun, seperti yang akan diperlihatkan sejak section Membaca dan Menulis Data.
Dua peta konsep ini menutup bagian orientasi. Bab berikutnya mengajak melihat pandas dalam peta besarnya — posisinya di antara NumPy, Matplotlib, dan rekan-rekan ekosistem Python lainnya.
Dokumentasi resmi yang relevan: User Guide: Cookbook — Idioms
yang menyajikan padanan operasi demi operasi, pandas.DataFrame.pivot_table
untuk pivot dengan margins, dan pandas.read_csv
sebagai jembatan berkas spreadsheet.