Bagaimana untuk Menyahsarang Berbilang Lajur Senarai dengan Cekap dalam Bingkai Data Pandas?

Susan Sarandon
Lepaskan: 2024-11-17 20:58:02
asal
437 orang telah melayarinya

How to Efficiently Unnest Multiple List Columns in a Pandas DataFrame?

Cara Menyahsarang (Meletup) Berbilang Lajur Senarai dalam DataFrame panda Dengan Cekap

Masalah: Meletupkan Lajur Senarai Bersarang dalam Set Data Besar

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.

Penyelesaian: Menggunakan panda >= 1.3

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)
Salin selepas log masuk

Penyelesaian untuk panda < 1.3

Untuk versi lama panda, pendekatan yang sedikit lebih kompleks diperlukan:

  1. Tetapkan indeks DataFrame menjadi lajur yang tidak sepatutnya diletupkan.
  2. Gunakan Siri.letup pada setiap lajur untuk diletupkan.
  3. Tetapkan semula indeks untuk mendapatkan DataFrame yang tidak bersarang.
df.set_index(['A']).apply(pd.Series.explode).reset_index()
Salin selepas log masuk

Pertimbangan Kecekapan

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

Nota Soalan Pendua

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan