groupby() di Pandas

Mengelompokkan baris berdasarkan kolom tertentu lalu menghitung ringkasan per kelompok, setara GROUP BY di SQL.

Diperbarui · Tim Zennit.id

Penjelasan sederhana

Bayangkan semua baris dipilah ke beberapa keranjang sesuai kategori, lalu isi tiap keranjang dijumlah. Ini cara kerja PivotTable di Excel dan GROUP BY di SQL.

Sintaks

df.groupby('kolom')['nilai'].sum()
BagianKeterangan
'kolom'Kolom pengelompok. Bisa daftar untuk beberapa level.
['nilai']Kolom yang diringkas.
sum(), mean(), count(), max(), min()Fungsi ringkasan.

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 groupby()

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
groupby.py
penjualan['omzet'] = penjualan['qty'] * penjualan['harga']
penjualan.groupby('kategori')['omzet'].sum().sort_values(ascending=False)

Hasil 3 baris × 1 kolom

kategoriomzet
Elektronik 38100000
Furnitur 16050000
ATK 2750000

Elektronik menyumbang omzet terbesar, disusul Furnitur, lalu ATK.

Cara kerjanya, langkah demi langkah

  1. Kolom omzet dihitung dulu.
  2. groupby('kategori') membagi baris ke kelompok Elektronik, Furnitur, ATK.
  3. ['omzet'].sum() menjumlah omzet tiap kelompok, lalu diurutkan dari yang terbesar.

Dipakai untuk apa di kantor?

  • Omzet per cabang, jumlah karyawan per divisi, rata-rata nilai per kelas.
  • Langkah awal hampir semua laporan rekap.

Kesalahan yang sering terjadi

  • Lupa memilih kolom nilai, sehingga Pandas mencoba menjumlah semua kolom termasuk teks.
  • Bingung karena kolom pengelompok pindah jadi index. Pakai as_index=False atau reset_index().
Progres bab Rekap & Grouping 0/3 dipelajari
Lanjut: agg()

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