在Pandas 中,當您想要每個列表都包含列時,處理包含清單列的DataFrame 可能會很有挑戰性清單元素表示為單獨的行。這就是 .explode() 方法發揮作用的地方。
Pandas ≥ 0.25
對於 Pandas 0.25 及更高版本,遊戲規則改變者是 .explode( ) 方法。它允許您將類似清單的列分解為單獨的行,從而將其從長形式轉換為寬形式。
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
請注意,.explode() 一次對單一欄位進行操作。對於包含混合類型(例如列表和標量)的列,.explode() 表現得明智並保留空列表和 NaN。
以上是Pandas\' .explode()` 方法如何將基於列表的列轉換為單獨的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!