agg() di Pandas

Menghitung beberapa ringkasan sekaligus per kelompok, dengan nama kolom hasil yang bisa ditentukan sendiri.

Diperbarui · Tim Zennit.id

Penjelasan sederhana

Kalau groupby().sum() hanya memberi satu angka per kelompok, agg() bisa memberi beberapa angka sekaligus, masing-masing dengan nama kolom yang jelas.

Sintaks

df.groupby('kolom').agg(
    nama_hasil=('kolom_nilai', 'fungsi'),
)
BagianKeterangan
nama_hasilNama kolom di tabel hasil.
('kolom_nilai', 'fungsi')Kolom yang diringkas dan fungsinya: 'sum', 'mean', 'count', 'max', 'min', 'nunique'.

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

Data contoh: karyawan (sudah tersedia sebagai DataFrame)

DataFrame karyawan

idnamadept_idkotagajitgl_masukatasan_id
1 Andi Pratama 3 Bandung 12500000 2019-03-11 NaN
2 Bunga Lestari 1 Jakarta 9800000 2020-07-01 NaN
3 Candra Wijaya 3 Bandung 8200000 2021-02-15 1
4 Dewi Anggraini 2 Jakarta 7500000 2022-05-09 6
5 Eko Saputra 1 Jakarta 6900000 2023-01-16 2
6 Fajar Nugroho 2 Surabaya 11000000 2018-09-03 NaN
7 Gita Permata 3 Jakarta 8200000 2023-08-21 1
8 Hendra Gunawan NaN Medan 5500000 2024-04-02 NaN
agg.py
karyawan.groupby('kota').agg(
    jumlah=('id', 'count'),
    rata_gaji=('gaji', 'mean'),
    gaji_max=('gaji', 'max'),
).sort_values('jumlah', ascending=False)

Hasil 4 baris × 3 kolom

kotajumlahrata_gajigaji_max
Jakarta 4 8100000 9800000
Bandung 2 10350000 12500000
Medan 1 5500000 5500000
Surabaya 1 11000000 11000000

Satu tabel berisi jumlah karyawan, rata-rata gaji, dan gaji tertinggi di setiap kota.

Cara kerjanya, langkah demi langkah

  1. groupby('kota') mengelompokkan karyawan per kota.
  2. agg() menghitung count id, mean gaji, dan max gaji untuk tiap kota.
  3. Hasil diurutkan dari kota dengan karyawan terbanyak.

Dipakai untuk apa di kantor?

  • Tabel ringkasan laporan bulanan: jumlah transaksi, total, rata-rata.
  • Membandingkan cabang dengan beberapa metrik sekaligus.

Kesalahan yang sering terjadi

  • Menulis fungsi tanpa kutip, misalnya ('gaji', mean). Fungsi bawaan ditulis sebagai teks.
  • Memakai 'count' pada kolom yang ada NaN; nilai kosong tidak ikut dihitung. Pakai 'size' untuk jumlah baris.
Progres bab Rekap & Grouping 0/3 dipelajari
Lanjut: pivot_table()

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