Pandas explode: Pecah List Jadi Baris (2026)
Blog/Tips & Trik/Pandas explode: Pecah List Jadi Baris (2026)

Pandas explode: Pecah List Jadi Baris (2026)

BimaBima
·11 September 2026·9 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

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.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel terkait

NumPy reshape: Ubah Bentuk Array (2026)
Tips & Trik
8 Oktober 2026•9 menit baca

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.

BimaBima
NumPy Array: Dasar-Dasar untuk Analis Data (2026)
Tips & Trik
6 Oktober 2026•10 menit baca

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.

BimaBima
Alternatif iterrows yang Lebih Cepat di Pandas
Tips & Trik
3 Oktober 2026•8 menit baca

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.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

© 2026 Ngulik Data. Semua hak dilindungi.

TAUTAN
BantuanHargaDatasetBlogAfiliasi
LEGAL
Syarat & KetentuanKebijakan Privasi
Ngulik Data
DatasetLeaderboardBlogStore