0Pricing
Python Academy · Pelajaran

GroupBy, Agregasi, dan Tabel Pivot

Ringkas data dengan operasi groupby dan tabel pivot.

GroupBy, Agregasi, dan Tabel Pivot adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Dasar-Dasar groupby

df.groupby("col") membagi DataFrame menjadi beberapa grup berdasarkan nilai unik kolom tersebut. Rangkaikan fungsi agregasi untuk mendapatkan hasil.

import pandas as pd

df = pd.DataFrame({
    "dept":["HR","IT","HR","IT","HR"],
    "salary":[60,80,65,90,70]
})
print(df.groupby("dept")["salary"].mean())
# HR    65.0
# IT    85.0

Beberapa Fungsi Agregasi

Gunakan agg() untuk menerapkan beberapa fungsi agregasi sekaligus.

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR","IT"],"sal":[60,80,65,90]})
result = df.groupby("dept")["sal"].agg(["mean","max","count"])
print(result)

Agregasi Bernama

Gunakan argumen kata kunci dalam agg() untuk memberi nama kolom keluaran secara eksplisit (Pandas 0.25+).

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR","IT"],"sal":[60,80,65,90]})
result = df.groupby("dept").agg(
    avg_sal=("sal","mean"),
    max_sal=("sal","max"),
    count=("sal","size")
)
print(result)

groupby pada Beberapa Kolom

Berikan daftar kolom untuk membuat grup bertingkat.

import pandas as pd

df = pd.DataFrame({
    "year":[2023,2023,2024,2024],
    "dept":["HR","IT","HR","IT"],
    "sal":[60,80,65,90]
})
print(df.groupby(["year","dept"])["sal"].sum())

transform()

transform mengembalikan Series yang selaras dengan indeks asli — berguna untuk menambahkan statistik tingkat grup kembali ke DataFrame asli.

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR","IT"],"sal":[60,80,65,90]})
df["dept_avg"] = df.groupby("dept")["sal"].transform("mean")
print(df)

filter()

filter(func) hanya mempertahankan grup yang fungsinya mengembalikan True.

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR"],"sal":[60,80,65]})
# Keep only departments with mean salary > 70:
result = df.groupby("dept").filter(lambda g: g["sal"].mean() > 70)
print(result)

pivot_table

pd.pivot_table membuat ringkasan bergaya lembar bentang dengan agregasi khusus.

import pandas as pd

df = pd.DataFrame({
    "year":[2023,2023,2024,2024],
    "region":["East","West","East","West"],
    "sales":[100,150,120,200]
})
pt = pd.pivot_table(df, values="sales",
                    index="year", columns="region",
                    aggfunc="sum")
print(pt)

crosstab

pd.crosstab menghitung tabulasi silang — berguna untuk menghitung kombinasi nilai kategoris.

import pandas as pd

df = pd.DataFrame({"gender":["M","F","M","F","M"],"result":["pass","pass","fail","fail","pass"]})
print(pd.crosstab(df["gender"], df["result"]))

apply()

apply(func) menerapkan fungsi khusus ke DataFrame setiap grup (axis=0) atau ke setiap baris/kolom (axis=1).

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR"],"sal":[60,80,65]})

def range_sal(g):
    return g["sal"].max() - g["sal"].min()

print(df.groupby("dept").apply(range_sal))

unstack untuk Pembentukan Ulang

Setelah melakukan groupby bertingkat, gunakan unstack() untuk memindahkan tingkat indeks terdalam menjadi kolom.

import pandas as pd

df = pd.DataFrame({"year":[2023,2023,2024],"dept":["HR","IT","HR"],"sal":[60,80,65]})
result = df.groupby(["year","dept"])["sal"].mean().unstack()
print(result)

resample untuk Series Waktu

resample("M") mengelompokkan DataFrame series waktu berdasarkan periode kalender, sehingga memungkinkan agregasi bulanan atau tahunan.

import pandas as pd

idx = pd.date_range("2024-01-01", periods=90, freq="D")
df = pd.DataFrame({"sales": range(90)}, index=idx)
monthly = df.resample("ME").sum()
print(monthly)

Pemeriksaan Singkat

Apa yang dikembalikan oleh groupby().transform("mean")?

Ringkasan

groupby membagi data menjadi beberapa grup untuk agregasi. Gunakan agg() untuk beberapa fungsi, transform() untuk menyebarkan statistik grup kembali ke data, filter() untuk menghapus grup, serta pivot_table()/crosstab() untuk ringkasan lintas dimensi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “GroupBy, Agregasi, dan Tabel Pivot” gratis?

Ya — teks lengkap “GroupBy, Agregasi, dan Tabel Pivot” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “GroupBy, Agregasi, dan Tabel Pivot”?

Ringkas data dengan operasi groupby dan tabel pivot. Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “GroupBy, Agregasi, dan Tabel Pivot” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar Series dan DataFrame
  2. Pengindeksan, Pemfilteran, dan Mask Boolean
  3. GroupBy, Agregasi, dan Tabel Pivot
  4. Penggabungan, Penyatuan, dan Pembersihan Data
← Kembali ke Python Academy