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.

python
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:

text
       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  210000

Mari kita telaah baris-baris kuncinya:

  1. Baris 12-13: merge(on="produk") menemukan dua baris yang dipilih — padanan VLOOKUP yang sekaligus mengembalikan semua kolom referensi.
  2. Baris 16-17: mask boolean plus sum() adalah SUMIFS satu syarat; hasilnya angka tunggal 120.
  3. Baris 20: perkalian dua Series menghasilkan kolom omzet penuh tanpa formula disalin per baris.
  4. 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.