pivot_table() di Pandas

Membuat tabel silang (baris × kolom) dari data panjang, persis PivotTable di Excel.

Diperbarui · Tim Zennit.id

Penjelasan sederhana

Kalau kamu sering membuat PivotTable di Excel, ini versinya di Python: tentukan baris, kolom, nilai, dan cara meringkasnya.

Sintaks

df.pivot_table(index, columns, values, aggfunc='mean', fill_value=None)
BagianKeterangan
indexKolom yang jadi baris.
columnsKolom yang jadi judul kolom.
valuesKolom yang diringkas.
aggfuncFungsi ringkasan: 'sum', 'mean', 'count'. Bawaannya mean.
fill_valuePengganti sel kosong, misalnya 0.

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

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
pivot-table.py
penjualan['omzet'] = penjualan['qty'] * penjualan['harga']
penjualan['bulan'] = penjualan['tanggal'].str[:7]
penjualan.pivot_table(index='bulan', columns='kategori',
                      values='omzet', aggfunc='sum', fill_value=0)

Hasil 3 baris × 3 kolom

bulanATKElektronikFurnitur
2026-01 0 19300000 6000000
2026-02 1100000 8500000 5250000
2026-03 1650000 10300000 4800000

Omzet per bulan (baris) dan per kategori (kolom). Sel 0 berarti tidak ada transaksi kategori itu di bulan tersebut.

Cara kerjanya, langkah demi langkah

  1. Kolom omzet dan bulan disiapkan dulu.
  2. Bulan jadi baris, kategori jadi kolom.
  3. Omzet dijumlah di setiap pertemuan bulan × kategori, sel kosong diisi 0.

Dipakai untuk apa di kantor?

  • Rekap bulanan per kategori, cabang × produk, divisi × status.
  • Menyiapkan data untuk grafik batang bertumpuk.

Kesalahan yang sering terjadi

  • Lupa aggfunc='sum', sehingga yang keluar rata-rata, bukan total.
  • Bingung dengan pivot(): fungsi itu tidak meringkas dan error kalau ada kombinasi dobel.
Progres bab Rekap & Grouping 0/3 dipelajari
Lanjut: merge()

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