Apabila berurusan dengan panda DataFrames, kadangkala perlu untuk "menyahsarang" atau "meletup" lajur yang mengandungi senarai ke dalam berbilang baris. Walau bagaimanapun, ini boleh menjadi operasi pengiraan yang mahal, terutamanya untuk set data yang besar.
Untuk panda versi 1.3 dan ke atas, terdapat fungsi terbina dalam yang dipanggil DataFrame.explode yang membolehkan anda membuka sarang berbilang lajur secara serentak. Fungsi ini memerlukan semua lajur senarai mempunyai panjang yang sama. Untuk menggunakannya:
df.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)
Untuk versi lama panda, pendekatan yang sedikit lebih kompleks diperlukan:
df.set_index(['A']).apply(pd.Series.explode).reset_index()
Kedua-dua kaedah menyediakan penyelesaian yang cekap, dengan set_index dan explode menjadi lebih pantas sedikit daripada DataFrame.explode. Jadual berikut menunjukkan perbandingan prestasi:
Method | Time (seconds) |
---|---|
DataFrame.explode | 0.00259 |
Set index and explode | 0.00127 |
Stacking approach | 0.120 |
Walaupun soalan ini pada mulanya ditandakan sebagai pendua, ia secara khusus menekankan keperluan untuk kaedah yang cekap yang boleh menangani masalah besar. set data. Jawapan kepada soalan pendua gagal memenuhi keperluan ini dengan secukupnya.
Atas ialah kandungan terperinci Bagaimana untuk Menyahsarang Berbilang Lajur Senarai dengan Cekap dalam Bingkai Data Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!