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.

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

text
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: 25000

Mari kita telaah kode di atas:

  1. harga + 5000: setiap nilai ditambah 5000; label index tetap menempel pada hasil sehingga kita tahu angka itu milik produk mana.
  2. harga > 20000: perbandingan dijalankan untuk setiap elemen dan menghasilkan Series bertipe bool; inilah mask otomatis yang disinggung pada chapter “Mengakses Elemen Series”.
  3. harga[harga > 20000]: mask diberikan kembali ke Series yang sama, sehingga hanya baris bertanda True yang tampil, yaitu Kopi.
  4. Tiga baris terakhir: method agregasi sum(), mean(), dan max() 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.

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

text
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: float64

Mari kita telaah kode di atas:

  1. Dua Series dibuat dari dictionary: januari memuat Kopi, Teh, Gula, sedangkan februari memuat Teh, Kopi, Susu; urutan penulisan dictionary keduanya sengaja dibuat berbeda.
  2. januari + februari: pandas menyatukan semua label, mengurutkannya, lalu menghitung hanya pada label yang ada di kedua sisi: Kopi menjadi 27 dan Teh menjadi 58.
  3. Label Gula dan Susu: keduanya menghasilkan NaN karena label tersebut hanya ada di satu sisi; NaN adalah penanda nilai kosong yang dipelajari pada chapter “Tipe Data Series”.
  4. januari.add(februari, fill_value=0): method add() dengan fill_value=0 memperlakukan label yang hilang sebagai nol, sehingga hasilnya lengkap tanpa NaN.

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 .