Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Kaedah Pandas\' `.explode()` Mengubah Lajur Berdasarkan Senarai kepada Baris Berasingan?
Dalam Panda, berurusan dengan DataFrames yang mengandungi lajur senarai boleh mencabar apabila anda ingin memiliki setiap elemen senarai diwakili sebagai baris yang berasingan. Di sinilah kaedah .explode() dimainkan.
Panda ≥ 0.25
Untuk Pandas versi 0.25 dan ke atas, penukar permainan ialah .explode( ) kaedah. Ia membolehkan anda meletupkan lajur seperti senarai ke dalam baris yang berasingan, sekali gus menukarnya daripada bentuk panjang kepada bentuk lebar.
import pandas as pd # Sample DataFrame 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)] }) # Explode using .explode() exploded_df = df.explode('samples') # Reset index to be monotonically increasing (optional) exploded_df = exploded_df.reset_index(drop=True) print(exploded_df) # Output: # subject trial_num sample # 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 # 7 2 1 -0.08 # 8 2 1 -4.22 # 9 2 1 -2.05 # 10 2 2 0.72 # 11 2 2 0.79 # 12 2 2 0.53 # 13 2 3 0.4 # 14 2 3 -0.32 # 15 2 3 -0.13
Perhatikan bahawa .explode() beroperasi pada satu lajur pada satu masa. Untuk lajur yang mengandungi jenis bercampur (cth., senarai dan skalar), .explode() berkelakuan dengan wajar dan mengekalkan senarai kosong dan NaN.
Atas ialah kandungan terperinci Bagaimanakah Kaedah Pandas\' `.explode()` Mengubah Lajur Berdasarkan Senarai kepada Baris Berasingan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!