Pandas explode: Pecah List Jadi Baris (2026)
TL;DR
Pandas explode mecah kolom yang isinya list jadi beberapa baris, satu elemen per baris, sambil nyalin nilai kolom lain. Fungsi ini pas buat data di mana satu sel nyimpen banyak nilai, seperti daftar produk dalam satu transaksi. Pakai ignore_index=True biar nomor barisnya rapi lagi.
Pandas explode mecah kolom yang isinya list jadi beberapa baris, satu elemen per baris, sambil nyalin nilai kolom lain di baris itu.
Ini kepakai pas satu sel nyimpen banyak nilai sekaligus. Contoh klasiknya: satu transaksi yang isinya daftar tiga produk. Susah dihitung kalau semua produk numpuk di satu sel.
Habis baca ini kamu bisa ngubah kolom list jadi tabel rapi yang siap dihitung, termasuk cara nangani sel kosong dan mecah beberapa kolom sekaligus.
Apa itu pandas explode?
explode adalah method pandas yang ngubah tiap elemen di dalam list jadi barisnya sendiri. Satu baris yang punya list [kopi, teh, roti] jadi tiga baris. Nilai kolom lain di baris asal disalin ke tiga baris itu. Hasilnya DataFrame baru yang lebih panjang.
Kalau kamu masih baru sama struktur tabel di pandas, baca dulu glossary DataFrame biar kebayang bentuk datanya.
import pandas as pd
df = pd.DataFrame({
'transaksi': [1, 2],
'produk': [['kopi', 'teh', 'roti'], ['susu', 'gula']]
})
df.explode('produk')
Hasilnya: transaksi 1 jadi tiga baris (kopi, teh, roti), transaksi 2 jadi dua baris (susu, gula). Kolom transaksi ikut nyalin ke tiap baris.
Kapan butuh explode?
Butuh explode tiap kali satu sel nyimpen banyak nilai dan kamu mau hitung per nilai. Misalnya data transaksi di mana kolom produk berisi daftar barang, atau kolom tag yang isinya beberapa kategori. Selama masih berbentuk list dalam satu sel, angkanya susah dihitung.
Setelah explode, tiap produk punya baris sendiri. Kamu tinggal pakai value_counts atau groupby buat ngitung produk paling laku. Lanjutannya bisa kamu pelajari di groupby pandas.
Gimana cara pakai explode langkah demi langkah?
Langkahnya tiga: pastikan kolomnya berisi list, panggil explode('nama_kolom'), lalu rapikan index pakai ignore_index=True. Kalau datanya masih teks dipisah koma, pecah dulu pakai str.split biar jadi list sebelum di-explode.
# Data awal: produk ditulis dipisah koma dalam satu teks
df = pd.DataFrame({
'transaksi': [1, 2],
'produk': ['kopi,teh,roti', 'susu,gula']
})
# Langkah 1: teks jadi list
df['produk'] = df['produk'].str.split(',')
# Langkah 2 & 3: explode + rapikan index
hasil = df.explode('produk', ignore_index=True)
print(hasil)
Sekarang hasil punya lima baris, satu per produk, dengan nomor index urut dari nol. Kolom transaksi kesalin otomatis ke tiap baris.
Gimana explode beberapa kolom sekaligus?
Mulai pandas 1.3, kasih list nama kolom ke explode, contohnya df.explode(['produk', 'qty']). Syaratnya panjang list di tiap kolom harus sama per baris. Kalau produk ada 3 item tapi qty cuma 2, pandas bakal error karena nggak tau cara masangin.
df = pd.DataFrame({
'transaksi': [1],
'produk': [['kopi', 'teh', 'roti']],
'qty': [[2, 1, 3]]
})
df.explode(['produk', 'qty'], ignore_index=True)
Hasilnya tiga baris di mana kopi pasangan sama qty 2, teh sama 1, roti sama 3. Ini yang bikin explode multi-kolom rapi, asal panjang listnya sejajar.
Gimana handle nilai kosong dan list kosong?
List kosong dan NaN bakal jadi satu baris berisi NaN, bukan hilang. Jadi barisnya tetap ada tapi kosong. Kalau kamu nggak mau baris kosong itu keitung, buang pakai dropna setelah explode.
df = pd.DataFrame({
'transaksi': [1, 2, 3],
'produk': [['kopi', 'teh'], [], None]
})
hasil = df.explode('produk')
hasil = hasil.dropna(subset=['produk'])
Tanpa dropna, transaksi 2 dan 3 tetap muncul sebagai baris NaN. Ini sering bikin hitungan jumlah produk kelebihan dua, dan nggak ada pesan error yang ngasih tau.
Contoh kasus: hitung produk terlaris toko_berkah
Toko_berkah nyimpen 1.200 transaksi. Kolom item berisi daftar produk yang dibeli, ditulis dipisah koma dalam satu sel.
Dari dataset ngulikdata, tiap transaksi rata-rata berisi 3,4 produk. Setelah str.split dan explode, 1.200 baris jadi 4.080 baris, satu per produk. Baru dari sini produk terlaris kelihatan.
df['item'] = df['item'].str.split(',')
laris = (df.explode('item', ignore_index=True)
['item'].str.strip()
.value_counts())
print(laris.head())
Perhatiin str.strip() buat ngebuang spasi sisa pemisah koma. Tanpa itu, 'kopi' dan ' kopi' keitung dua produk beda. Kesalahan kecil yang bikin angka terlaris meleset.
Kesalahan umum pakai explode
Lupa ignore_index=True. Tanpa itu, index-nya berulang dari baris asal, dan operasi berikutnya yang ngandelin index unik bisa kacau.
Lupa buang spasi setelah split. ' kopi' dan 'kopi' dianggap beda oleh pandas, jadi hitungannya salah. Selalu str.strip() setelah split teks.
Explode kolom yang isinya bukan list. Kalau kolomnya teks biasa, explode nggak mecah apa-apa dan hasilnya sama kayak awal. Pastikan kolomnya udah berbentuk list dulu.
FAQ
Apa fungsi explode di pandas?
explode mecah kolom berisi list jadi beberapa baris, satu elemen per baris, sambil nyalin nilai kolom lain. Kepakai buat data di mana satu sel nyimpen banyak nilai, seperti daftar produk dalam satu transaksi.
Bisa explode lebih dari satu kolom?
Bisa sejak pandas 1.3. Kasih list nama kolom seperti df.explode(['produk', 'qty']). Panjang list di tiap kolom harus sama per baris, kalau nggak pandas bakal error.
Apa bedanya explode sama str.split?
str.split cuma mecah teks jadi list dalam satu sel. explode yang ngubah list jadi banyak baris. Keduanya sering dipakai berurutan: split dulu, baru explode.
Penutup
explode ngubah kolom list jadi baris terpisah, dan itu langkah kunci buat ngitung data yang numpuk dalam satu sel. Ingat tiga hal: pakai ignore_index=True, str.strip() setelah split, dan dropna kalau ada sel kosong.
Mau latihan langsung sama data pandas asli? Kulik di Ngulik Data, ada materi Python buat analis dari nol.
Lanjut baca: baca file CSV di pandas dan dokumentasi resmi pandas explode.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
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.
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.
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.