Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Meletupkan Senarai dalam Pandas DataFrames?

Bagaimana untuk Meletupkan Senarai dalam Pandas DataFrames?

Linda Hamilton
Linda Hamiltonasal
2024-12-03 11:45:12381semak imbas

How to Explode Lists Within Pandas DataFrames?

Senarai Meletup dalam Panda

Pernyataan Masalah

Dalam panda, anda mungkin menemui bingkai data dengan sel yang mengandungi senarai berbilang nilai. Daripada menyimpan berbilang nilai dalam satu sel, ia boleh memberi manfaat untuk mengembangkan bingkai data supaya setiap item dalam senarai menduduki barisnya sendiri.

Penyelesaian untuk Panda >= 0.25

Panda versi 0.25 dan ke atas memperkenalkan Kaedah .explode() untuk kedua-dua Siri dan DataFrame. Kaedah ini memisahkan elemen senarai dengan berkesan ke dalam baris yang berbeza.

Untuk meledakkan lajur, hanya gunakan sintaks berikut:

df.explode('column_name')

Sebagai contoh, mari pertimbangkan rangka data berikut:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {'trial_num': [1, 2, 3, 1, 2, 3],
     'subject': [1, 1, 1, 2, 2, 2],
     'samples': [list(np.random.randn(3).round(2)) for i in range(6)]
    }
)

Untuk meletupkan lajur 'sampel', kami akan melakukannya gunakan:

df_exploded = df.explode('samples')

Ini akan menghasilkan output yang diingini:

   subject  trial_num  samples
0        1          1    0.57
1        1          1   -0.83
2        1          1    1.44
3        1          2   -0.01
4        1          2    1.13
5        1          2    0.36
6        1          3    1.18
# etc.

Nota untuk Lajur Campuran

. kaedah explode() boleh mengendalikan lajur bercampur senarai dan skalar, serta kosong senarai dan NaNs. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ia hanya boleh meletupkan satu lajur pada satu masa.

Atas ialah kandungan terperinci Bagaimana untuk Meletupkan Senarai dalam Pandas DataFrames?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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