Pandas groupby: Agregasi Data ala Pivot di Python (2026)
Blog/Tips & Trik/Pandas groupby: Agregasi Data ala Pivot di Python (2026)

Pandas groupby: Agregasi Data ala Pivot di Python (2026)

BimaBima
·20 Juli 2026·9 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

Method groupby di pandas ngelompokin baris DataFrame berdasarkan nilai satu kolom atau lebih, lalu ngitung agregasi per grup kayak sum, mean, atau count. Pola dasarnya df.groupby('kolom')['angka'].sum(). Cara kerjanya split, apply, combine, dan hasilnya mirip pivot table tapi lewat kode.

Method groupby di pandas ngelompokin baris berdasarkan nilai satu kolom, lalu ngitung ringkasan per grup kayak total atau rata-rata. Ini padanan pivot table, tapi lewat kode.

Tiap kali kamu pengin jawab pertanyaan 'total penjualan per kota berapa' atau 'rata-rata order per pelanggan gimana', groupby yang ngerjain.

Di artikel ini kamu bakal ngerti cara kerjanya, cara ngitung beberapa agregasi sekaligus, contoh nyata pakai data toko, plus kesalahan yang bikin hasilnya keliatan aneh.

Apa itu groupby di pandas?

groupby adalah method DataFrame yang misahin data jadi grup berdasarkan nilai kolom, lalu nerapin fungsi hitung ke tiap grup. Cara kerjanya tiga tahap: split (pisah data per grup), apply (hitung agregasi tiap grup), combine (gabung hasilnya jadi satu tabel).

Kamu nggak perlu ngurus tiga tahap itu manual. pandas ngejalanin semuanya begitu kamu nulis satu baris groupby.

Gimana cara pakai groupby?

Pola dasarnya: pilih kolom pengelompok, pilih kolom angka, terus panggil fungsi agregasi. Anggap kamu punya DataFrame df dengan kolom kota dan nominal.

import pandas as pd

hasil = df.groupby('kota')['nominal'].sum()
print(hasil)

Baris itu ngelompokin data per kota, terus jumlahin nominal tiap kota. Hasilnya satu angka total per kota. Kalau kamu ganti sum jadi mean, kamu dapet rata-rata. Ganti jadi count, kamu dapet jumlah baris per kota.

Satu hal yang sering bikin bingung pemula: kolom kota berubah jadi index di hasil. Buat balikin jadi kolom biasa, tambahin reset_index.

hasil = df.groupby('kota')['nominal'].sum().reset_index()

Gimana cara pakai beberapa agregasi sekaligus?

Sering kali satu ringkasan nggak cukup. Kamu mau total, rata-rata, dan jumlah transaksi dalam satu tabel. Pakai method agg dan kasih daftar fungsi.

hasil = df.groupby('kota')['nominal'].agg(['sum', 'mean', 'count'])

Hasilnya tiga kolom sekaligus per kota: total, rata-rata, dan banyaknya baris. Biar nama kolomnya langsung jelas, kamu bisa kasih nama sendiri.

hasil = df.groupby('kota').agg(
    total_omzet=('nominal', 'sum'),
    rata_order=('nominal', 'mean'),
    jumlah_transaksi=('nominal', 'count')
).reset_index()

Cara ini disebut named aggregation. Hasil kolomnya jadi total_omzet, rata_order, dan jumlah_transaksi, bukan nama fungsi mentah yang bikin orang lain nebak-nebak.

Groupby lebih dari satu kolom

Kamu bisa ngelompokin berdasarkan beberapa kolom sekaligus. Tinggal kasih daftar kolom di dalam groupby.

hasil = df.groupby(['kota', 'kategori'])['nominal'].sum().reset_index()

Sekarang tiap baris hasil adalah satu kombinasi kota dan kategori. Cocok kalau kamu mau ringkasan yang lebih rinci, misalnya total penjualan per kota per kategori produk.

Contoh kasus: ringkasan penjualan toko_berkah

Anggap kamu ngolah data transaksi toko_berkah, UMKM sembako yang punya cabang di Bandung, Cimahi, dan Garut. Ada 4.100 baris transaksi dengan kolom cabang, kategori, dan nominal.

Pemiliknya mau tahu performa tiap cabang.

ringkasan = df.groupby('cabang').agg(
    total_omzet=('nominal', 'sum'),
    rata_transaksi=('nominal', 'mean')
).reset_index()

Dari sampel data ngulikdata, cabang Bandung nyumbang Rp 96.200.000 dengan rata-rata Rp 42.000 per transaksi, sementara Garut cuma Rp 21.300.000 tapi rata-ratanya lebih tinggi di Rp 58.000. Artinya Garut transaksinya lebih sedikit tapi nilainya lebih gede per belanja.

Pola kayak gini susah ketangkep kalau cuma lihat total. Begitu dipecah pakai groupby, arah strateginya jadi lebih jelas: Garut cocok buat produk bernilai tinggi. Buat ngeekspor hasil ini ke Excel, lanjut ke pandas to_excel.

Kesalahan umum pakai groupby

Lupa reset_index. Tanpa reset_index, kolom pengelompok jadi index dan hasilnya susah diolah lagi atau diekspor. Biasakan tambahin di ujung, atau pakai as_index=False.

Nggak milih kolom angka. Kalau kamu panggil sum ke seluruh DataFrame tanpa milih kolom, pandas ngabaikan kolom teks dan kadang hasilnya nggak sesuai harapan. Pilih kolom angka secara eksplisit biar terkontrol.

Nyampur groupby sama pivot_table tanpa sadar bedanya. Kalau kamu butuh tabel silang dua dimensi, pivot_table lebih pas. Detail lengkap method groupby ada di dokumentasi resmi pandas.

FAQ

Pertanyaan yang sering muncul soal groupby di pandas.

Penutup

groupby intinya split, apply, combine: pisah data per grup, hitung agregasinya, gabung jadi tabel. Buat ringkasan yang lebih dari satu angka, pakai agg dengan named aggregation biar hasil kolomnya langsung kebaca maksudnya.

Mau bentuk tabel silang ala pivot Excel? Cek pandas pivot_table. Udah selesai ngeringkas dan mau kirim hasilnya? Baca pandas to_excel.

Pengin lancar olah data dari mentah sampai insight siap presentasi? Kulik studi kasus data Indonesia di NgulikData biar kamu terbiasa sama alur kerja analis beneran.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel terkait

NumPy reshape: Ubah Bentuk Array (2026)
Tips & Trik
8 Oktober 2026•9 menit baca

NumPy reshape: Ubah Bentuk Array (2026)

Fungsi reshape di NumPy ngatur ulang bentuk array tanpa ngubah datanya. Ini cara pakainya, arti angka -1, dan cara ngeflat array.

BimaBima
NumPy Array: Dasar-Dasar untuk Analis Data (2026)
Tips & Trik
6 Oktober 2026•10 menit baca

NumPy Array: Dasar-Dasar untuk Analis Data (2026)

NumPy array bikin hitungan data di Python jauh lebih cepat dari list biasa. Ini dasar bikin, slicing, dan operasi array buat analis.

BimaBima
Alternatif iterrows yang Lebih Cepat di Pandas
Tips & Trik
3 Oktober 2026•8 menit baca

Alternatif iterrows yang Lebih Cepat di Pandas

iterrows nyaman ditulis tapi lambat. Ini urutan alternatif iterrows di pandas dari yang tercepat, plus benchmark biar kamu tau kapan pakai yang mana.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

© 2026 Ngulik Data. Semua hak dilindungi.

TAUTAN
BantuanHargaDatasetBlogAfiliasi
LEGAL
Syarat & KetentuanKebijakan Privasi
Ngulik Data
DatasetLeaderboardBlogStore