pct_change() di Pandas

Menghitung persentase perubahan dari baris sebelumnya, misalnya growth bulan ke bulan.

Diperbarui · Tim Zennit.id

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)
BagianKeterangan
periodsJarak 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

idtanggalkaryawan_idprodukkategoriqtyharga
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
pct-change.py
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

bulanomzetgrowth_%
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

  1. Omzet dijumlah per bulan.
  2. pct_change() membandingkan tiap bulan dengan bulan sebelumnya.
  3. 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.
Progres bab Analisis Lanjutan 0/3 dipelajari

Langkah berikutnya

Dari paham fungsi, ke siap kerja.

Belajar Python bareng mentor

Tahu fungsinya itu awal. Mengolah data kantor sampai jadi insight, itu skill.

Private Class Python & SQL untuk Data: dari Pandas dasar sampai membersihkan, merekap, dan memvisualisasikan data studi kasus kerja, dengan jadwal yang menyesuaikan kamu.

Lihat Private Class