Meletup Lajur Seperti Senarai: Panduan Memperluas Bingkai Data
Masalah:
Dalam Bingkai data Pandas, sesetengah sel mungkin mengandungi senarai berbilang nilai. Matlamatnya adalah untuk mengubah bingkai data supaya setiap elemen senarai menduduki baris yang berasingan, sambil mengekalkan nilai dalam lajur lain.
Penyelesaian:
Kaedah 1: repeat()
Sebelum Pandas 0.25, kaedah repeat() ialah biasa digunakan untuk meletupkan lajur senarai:
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)] } ) # Expand 'samples' column into separate rows using repeat() df_exploded = df.assign( samples=df['samples'].str.join(',').str.split(',') ).explode('samples') df_exploded = df_exploded.reset_index(drop=True) # Add sample_num column to track list element order df_exploded['sample_num'] = df_exploded.groupby('trial_num').cumcount()
Kaedah 2: explode() (Panda >= 0.25)
Dengan keluaran Pandas 0.25, . kaedah explode() menyediakan kaedah yang elegan penyelesaian:
df.explode('samples').reset_index(drop=True)
Kaedah ini secara automatik mengendalikan senarai kosong dan mengekalkan NaN, memastikan penukaran menyeluruh.
Nota:
Atas ialah kandungan terperinci Bagaimana untuk Meletupkan Lajur Seperti Senarai dengan Berkesan dalam Pandas DataFrames?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!