解開Pandas DataFrame 中的巢狀清單:行擴充
在Pandas DataFrame 中處理資料時,您可能會遇到包含清單的列,這些列可能跨越多個值。為了便於分析和操作,有必要將這些清單轉換為單獨的行。這個過程被稱為“長形成”或“行擴展”,允許每個列表元素佔據自己的行。
為了實現這一點,Pandas 提供了一個名為 .explode() 的專用方法,0.25版本中引入。此方法將指定的包含清單的列無縫轉換為一系列行,每個元素成為獨立的行。
實作:
使用 .explode() 方法,只需指定要展開的列名稱即可。預設情況下,它將為列中的每個元素建立新行,同時保留所有其他列中的值。
例如,考慮一個包含「樣本」欄位和值清單的資料框:
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)] } )
應用.explode()方法:
df.explode('samples')
產生以下資料幀:
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 2 1 -0.08 7 2 1 -4.22 8 2 1 -2.05 9 2 2 0.72 10 2 2 0.79 11 2 2 0.53
正如您所觀察到的,每個清單元素現在都有自己的行。值得注意的是,雖然該方法有效地展開列表,但它一次只針對單一列進行展開。
其他注意事項:
以上是如何將 Pandas DataFrame 中的巢狀清單擴展為單獨的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!