Penjelasan sederhana
Rumus growth yang biasa kamu tulis di Excel, (bulan ini - bulan lalu) / bulan lalu, diringkas jadi satu fungsi.
Sintaks
series.pct_change(periods=1)
| Bagian | Keterangan |
|---|---|
periods | Jarak baris pembanding. 1 = dibanding baris tepat sebelumnya, 12 = dibanding 12 baris sebelumnya (year on year untuk data bulanan). |
df adalah nama DataFrame (tabel) yang sedang diolah. Contoh di bawah memakai import pandas as pd dan import numpy as np, yang sudah disiapkan otomatis.
Contoh pct_change()
Data contoh: penjualan (sudah tersedia sebagai DataFrame)
DataFrame penjualan
| id | tanggal | karyawan_id | produk | kategori | qty | harga |
|---|---|---|---|---|---|---|
| 1 | 2026-01-05 | 4 | Laptop | Elektronik | 2 | 8500000 |
| 2 | 2026-01-12 | 6 | Printer | Elektronik | 1 | 2300000 |
| 3 | 2026-01-20 | 4 | Kursi Kantor | Furnitur | 5 | 1200000 |
| 4 | 2026-02-03 | 6 | Laptop | Elektronik | 1 | 8500000 |
| 5 | 2026-02-14 | 4 | Meja Kerja | Furnitur | 3 | 1750000 |
| 6 | 2026-02-25 | 5 | Kertas A4 | ATK | 20 | 55000 |
| 7 | 2026-03-02 | 6 | Kursi Kantor | Furnitur | 4 | 1200000 |
| 8 | 2026-03-10 | 4 | Printer | Elektronik | 2 | 2300000 |
| 9 | 2026-03-18 | 5 | Kertas A4 | ATK | 30 | 55000 |
| 10 | 2026-03-27 | 6 | Monitor | Elektronik | 3 | 1900000 |
penjualan['omzet'] = penjualan['qty'] * penjualan['harga']
bulan = penjualan['tanggal'].str[:7].rename('bulan')
bulanan = penjualan.groupby(bulan)['omzet'].sum().to_frame()
bulanan['growth_%'] = (bulanan['omzet'].pct_change() * 100).round(1)
bulanan
Hasil 3 baris × 2 kolom
| bulan | omzet | growth_% |
|---|---|---|
| 2026-01 | 25300000 | NaN |
| 2026-02 | 14850000 | -41.3 |
| 2026-03 | 16750000 | 12.8 |
Omzet Februari turun dibanding Januari, lalu Maret naik lagi. Januari bernilai NaN karena tidak punya bulan sebelumnya.
Cara kerjanya, langkah demi langkah
- Omzet dijumlah per bulan.
pct_change()membandingkan tiap bulan dengan bulan sebelumnya.- Hasil dikali 100 dan dibulatkan supaya terbaca sebagai persen.
Dipakai untuk apa di kantor?
- Growth penjualan bulanan, kenaikan harga, perubahan jumlah pelanggan.
- Mendeteksi lonjakan atau penurunan tajam.
Kesalahan yang sering terjadi
- Data belum diurutkan berdasarkan waktu.
- Membaca hasil 0.25 sebagai 0,25%; artinya 25%. Kalikan 100 untuk tampilan persen.