Menguasai Metode Pandas .explode(): Panduan Komprehensif
Pelajari semua yang perlu Anda ketahui tentang metode pandas .explode(), mencakup kolom tunggal dan ganda, penanganan data bertingkat, serta jebakan umum dengan contoh kode Python praktis.
Di dunia manipulasi data dengan pandas, metode .explode() sering menjadi alat yang berguna saat bekerja dengan daftar dalam DataFrame. Tutorial ini berfungsi sebagai buku pegangan untuk menguasai metode .explode(), mulai dari mekanisme dasarnya hingga penerapan lanjutan dan jebakan umum.
Jawaban Singkat: Begini Cara Kerja .explode()
Jika Anda mencari jawaban cepat, baca bagian ini saja. Metode .explode() dirancang untuk memperluas entri pada kolom mirip daftar ke beberapa baris, sehingga setiap elemen dalam daftar menjadi baris terpisah. Sebagai contoh, kita akan menggunakan DataFrame df berikut untuk menggambarkan prosesnya:
ID
Minat
1
['Python', 'Data Science']
2
['Machine Learning', 'AI']
Metode .explode() akan memperluas elemen pada kolom Interests, seperti berikut:
# Explode the Interests column
exploded_df = df.explode('Interests')
ID
Minat
1
Python
1
Data Science
2
Machine Learning
2
AI
Apa itu Metode Pandas .explode()?
Metode .explode() dirancang untuk menyederhanakan penanganan data bertingkat, seperti daftar atau tuple, di dalam pandas DataFrame. Dengan mengubah setiap elemen dari struktur mirip daftar menjadi baris terpisah, .explode() meningkatkan keteraksesan data dan kesiapan analisis.
Bagaimana Cara Kerja Metode .explode()?
Fungsionalitas .explode() kuat sekaligus mudah dipahami, dengan fokus pada kemudahan penggunaan dan efisiensi dalam tugas manipulasi data.
Column: Menentukan kolom dengan entri mirip daftar yang akan di-explode.
ignore_index: Jika disetel ke True, metode ini mengatur ulang indeks ke indeks bilangan bulat default, membantu menjaga integritas DataFrame setelah proses explode. Nilai default adalah False.
Dua cara menggunakan metode Pandas .explode()
Melakukan Explode pada Satu Kolom di Pandas
Kasus penggunaan yang paling umum melibatkan explode pada satu kolom, sehingga setiap entri mirip daftar diperluas menjadi baris-baris terpisah. Pada bagian jawaban singkat, kita membahas hal ini persis. Mari kita tinjau kembali contoh ini. Di sini kita memiliki DataFrame df, yang memuat ID individu & minat belajarnya. Seperti yang Anda lihat, minat belajar diformat sebagai daftar.
ID
Minat
1
['Python', 'Data Science']
2
['Machine Learning', 'AI']
Metode .explode() akan memperluas elemen pada kolom Interests menjadi baris-baris terpisah seperti berikut:
# Explode the Interests column
exploded_df = df.explode('Interests')
ID
Minat
1
Python
1
Data Science
2
Machine Learning
2
AI
Metode ini sangat berguna untuk kolom yang memuat data kategorikal atau beberapa atribut per observasi.
Melakukan Explode pada Beberapa Kolom di Pandas
Anda juga mungkin menemui skenario di mana Anda harus melakukan explode pada beberapa kolom dalam sebuah DataFrame. Ini sangat berguna ketika berhadapan dengan dataset di mana beberapa kolom berisi struktur mirip daftar yang perlu dibuka secara bersamaan. Mari tambahkan kolom Tools ke df untuk mengilustrasikannya:
ID
Minat
Alat
1
['Python', 'Data Science']
['Pandas', 'NumPy']
2
['Machine Learning', 'AI']
['Scikit-learn', 'TensorFlow']
Untuk melakukan explode pada beberapa kolom, cukup sertakan kolom-kolom yang ditentukan dalam sebuah daftar
Metode ini sangat berguna saat bekerja dengan beberapa kolom yang berisi daftar. Meski begitu, ada beberapa jebakan yang mungkin Anda temui saat bekerja dengan.explode(), yang akan kita bahas pada bagian berikut.
Kesalahan Umum Saat Menggunakan Pandas .explode() dan Solusinya
Kolom Duplikat Ter-explode
Jebakan umum saat bekerja dengan .explode() adalah tanpa sengaja melakukan explode pada kolom duplikat saat menggunakan metode ini. Sebagai pengingat, pastikan selalu daftar kolom yang Anda sertakan bersifat unik!
Melakukan Explode pada String yang Terlihat Seperti Daftar
Sering kali, Anda mungkin memiliki baris di DataFrame yang berupa string tetapi terlihat seperti daftar. Mencoba melakukan explode pada kolom dengan string yang menyerupai daftar, seperti "['Python', 'AI']", tidak menghasilkan perubahan karena metode .explode() mengharapkan objek mirip daftar yang sebenarnya, bukan string yang terlihat seperti daftar. Berikut contoh seperti apa bentuknya dan solusinya! Misalkan df memiliki nilai berikut:
ID
Minat
1
"['Python', 'Data Science']"
2
"['Machine Learning', 'AI']"
Seperti yang terlihat, kolom Interests memiliki nilai berupa string yang terlihat seperti daftar. Menggunakan .explode() pada Interests tidak akan menghasilkan perubahan karena nilainya adalah string tunggal. Untuk memperbaikinya, kita mengonversi nilai pada Interests menjadi daftar.
import ast
df['Interests'] = df['Interests'].apply(ast.literal_eval)
exploded_df = df.explode('Interests')
print(exploded_df) # This will work
Panjang Tidak Cocok pada Beberapa Kolom
Saat bekerja dengan pandas DataFrame, jebakan umum adalah menemui baris di mana struktur mirip daftar pada kolom yang ditentukan untuk explode memiliki panjang yang tidak cocok. Ketidaksesuaian ini dapat menyebabkan data tidak sejajar atau tidak lengkap setelah menggunakan metode .explode() pada beberapa kolom. Sebagai contoh, bayangkan df seperti berikut:
ID
Minat
Alat
1
['Python', 'Data Science']
['Pandas']
2
['Machine Learning']
['Scikit-learn', 'TensorFlow']
Seperti terlihat, kolom Interests dan Tools berisi daftar dengan panjang berbeda. Menggunakan .explode() pada kolom-kolom ini apa adanya akan menghasilkan galat, karena kolom harus memiliki jumlah nilai yang sama dalam daftar. Untuk memperbaikinya, Anda dapat menambah daftar dengan None menggunakan fungsi kustom, seperti berikut:
# Function to pad lists to the same length
def pad_lists(row):
max_len = max(len(row['Interests']), len(row['Tools']))
row['Interests'] += [None] * (max_len - len(row['Interests']))
row['Tools'] += [None] * (max_len - len(row['Tools']))
return row
# Apply the padding function to each row
df = df.apply(pad_lists, axis=1)
# Now, safely explode both columns
df.explode(['Interests','Tools'])
ID
Minat
Alat
1
Python
Pandas
1
Data Science
None
2
Machine Learning
Scikit-learn
2
None
TensorFlow
Penutup
Singkatnya, metode .explode() adalah metode yang berguna saat membongkar elemen dalam daftar nilai menjadi baris pada Pandas DataFrame. Untuk pembelajaran pandas lebih lanjut, lihat sumber berikut:
Adel adalah pendidik Data Science, pembicara, dan VP Media di DataCamp. Adel telah merilis berbagai kursus dan pelatihan langsung tentang analisis data, machine learning, dan rekayasa data. Ia bersemangat menyebarkan keterampilan dan literasi data di seluruh organisasi serta mengeksplorasi persinggungan teknologi dan masyarakat. Ia meraih gelar MSc di bidang Data Science dan Business Analytics. Di waktu luang, Anda bisa menemukannya bersantai bersama kucingnya, Louis.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.