Kekuatan utama pandas terletak pada operasi yang bekerja untuk seluruh nilai sekaligus tanpa loop eksplisit. harga + 5000 menambahkan lima ribu ke setiap elemen dalam satu baris kode, dan harga > 20000 menghasilkan daftar nilai logika untuk penyaringan. Pola ini disebut vectorized operation, dan kita sudah melihat sekilas pada chapter-chapter sebelumnya. Chapter ini merangkum operasi aritmetika, perbandingan, filter boolean, serta aturan penjajaran index ketika dua Series dioperasikan bersama.
Operasi dengan Skalar #
Operasi antara Series dan satu nilai tunggal (scalar) diterapkan ke setiap elemen Series. Mekanisme ini disebut broadcast: satu nilai “menyebar” ke seluruh elemen tanpa kita menulis loop. Semua operator aritmetika Python berlaku, termasuk +, -, *, /, dan **. Hasilnya selalu Series baru, sehingga Series asal tetap utuh, perilaku yang konsisten dengan Copy-on-Write yang selalu aktif di pandas 3.0.
Aritmetika, Perbandingan, dan Filter #
Skrip berikut memakai satu Series harga untuk menunjukkan tiga pola sekaligus: operasi dengan skalar, perbandingan yang menghasilkan Series boolean, dan filter berbasis mask tersebut.
import pandas as pd
harga = pd.Series(
[25000, 18000, 14000],
index=["Kopi", "Teh", "Gula"],
)
print(harga + 5000) # operasi dengan skalar
print()
print(harga > 20000) # perbandingan menghasilkan Series bool
print()
print(harga[harga > 20000]) # filter dengan mask bool
print()
print("Total :", harga.sum())
print("Rata-rata:", harga.mean())
print("Tertinggi:", harga.max())Output yang Dihasilkan:
Kopi 30000
Teh 23000
Gula 19000
dtype: int64
Kopi True
Teh False
Gula False
dtype: bool
Kopi 25000
dtype: int64
Total : 57000
Rata-rata: 19000.0
Tertinggi: 25000Mari kita telaah kode di atas:
harga + 5000: setiap nilai ditambah 5000; label index tetap menempel pada hasil sehingga kita tahu angka itu milik produk mana.harga > 20000: perbandingan dijalankan untuk setiap elemen dan menghasilkan Series bertipebool; inilah mask otomatis yang disinggung pada chapter “Mengakses Elemen Series”.harga[harga > 20000]: mask diberikan kembali ke Series yang sama, sehingga hanya baris bertandaTrueyang tampil, yaituKopi.- Tiga baris terakhir: method agregasi
sum(),mean(), danmax()merangkum seluruh nilai menjadi satu angka;count()juga tersedia dan hanya menghitung elemen yang tidak kosong.
Pola seri[kondisi] di atas adalah bentuk paling dasar dari filter data yang akan terus kita pakai sepanjang Course, baik pada Series maupun pada DataFrame.
Operasi Antar Series dan Alignment Index #
Ketika dua Series dijumlahkan, pandas tidak hanya mengalikan posisi; pandas mencocokkan label kedua index terlebih dahulu, lalu menghitung nilai yang labelnya sama. Proses ini disebut index alignment. Skrip berikut menjumlahkan penjualan dua bulan yang labelnya tidak sepenuhnya sama.
import pandas as pd
januari = pd.Series({"Kopi": 12, "Teh": 30, "Gula": 25})
februari = pd.Series({"Teh": 28, "Kopi": 15, "Susu": 10})
total = januari + februari
print(total)
print()
print(januari.add(februari, fill_value=0))Output yang Dihasilkan:
Gula NaN
Kopi 27.0
Susu NaN
Teh 58.0
dtype: float64
Gula 25.0
Kopi 27.0
Susu 10.0
Teh 58.0
dtype: float64Mari kita telaah kode di atas:
- Dua Series dibuat dari dictionary:
januarimemuatKopi,Teh,Gula, sedangkanfebruarimemuatTeh,Kopi,Susu; urutan penulisan dictionary keduanya sengaja dibuat berbeda. januari + februari: pandas menyatukan semua label, mengurutkannya, lalu menghitung hanya pada label yang ada di kedua sisi:Kopimenjadi 27 danTehmenjadi 58.- Label
GuladanSusu: keduanya menghasilkanNaNkarena label tersebut hanya ada di satu sisi;NaNadalah penanda nilai kosong yang dipelajari pada chapter “Tipe Data Series”. januari.add(februari, fill_value=0): methodadd()denganfill_value=0memperlakukan label yang hilang sebagai nol, sehingga hasilnya lengkap tanpaNaN.
Perhatikan pula dtype hasil: penjumlahan dengan NaN menghasilkan float64, konsisten dengan aturan pada chapter sebelumnya bahwa kehadiran nilai kosong mengangkat dtype bilangan bulat menjadi desimal.
Statistik Ringkas Sebagai Penutup Analisis #
Method agregasi menjadi langkah akhir yang paling sering dipakai setelah data tersaring. sum() dan mean() menjawab pertanyaan total serta rata-rata, max() dan min() menemukan batas atas dan bawah, sedangkan count() menghitung elemen yang terisi. Semua method tersebut mengabaikan NaN secara otomatis, sehingga nilai kosong tidak merusak ringkasan.
Dengan chapter ini, Section Dasar Series tuntas: kita sudah bisa membuat Series dari berbagai sumber, membaca index dan values, mengakses elemen lewat label maupun posisi, memotong rentang, memeriksa atribut dan dtype, serta menjalankan operasi aritmetika dengan aturan penjajaran index. Babak berikutnya menyusun banyak Series yang berbagi index menjadi satu tabel lengkap: Section Dasar DataFrame. Rujukan resmi untuk materi ini adalah User Guide bagian basics dan pandas.Series.add .