Lajur Senarai Panda: Mencipta Baris untuk Setiap Elemen Senarai
Dalam bingkai data Pandas, mungkin perlu menukar lajur yang mengandungi senarai menjadi berbilang baris, di mana setiap elemen senarai menduduki barisnya sendiri. Untuk mencapai matlamat ini, terdapat dua pilihan yang berdaya maju.
Kaedah letupan Terbina Dalam Pandas>=0.25
Untuk Pandas versi 0.25 dan lebih baru, .explode( ) kaedah telah diperkenalkan khusus untuk tujuan ini. Ia cekap menukar senarai ke dalam baris individu.
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)] }) df.explode('samples').reset_index(drop=True) # Resetting the index for clarity
Kaedah ini mengendalikan lajur bercampur yang mengandungi senarai dan skalar, serta senarai kosong dan NaN. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa letupan beroperasi pada satu lajur pada satu masa.
Fungsi Tersuai untuk Panda <0.25
Untuk versi terdahulu Panda, a fungsi tersuai boleh digunakan:
def explode_list_column(df, column): # Create an empty list to store the expanded rows exploded_rows = [] # Iterate through each cell in the specified column for row in df[column]: # Iterate through each element in the list for element in row: # Add a new row to the list, copying data from the current row and adding the new element exploded_rows.append(list(row) + [element]) # Convert the expanded rows into a DataFrame return pd.DataFrame(exploded_rows, columns=df.columns + ['list_element'])
Fungsi ini mengambil DataFrame dan nama lajur yang mengandungi disenaraikan sebagai parameter dan ia mengembalikan DataFrame baharu dengan lajur untuk setiap elemen senarai.
# Applying the exploding function exploded_df = explode_list_column(df, 'samples')
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Lajur Senarai Panda kepada Berbilang Baris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!