將Pandas 清單列拆分為多個欄位
在資料探索中,通常需要將DataFrame 資料列重組為更容易管理的格式。其中一個場景涉及將包含清單的列拆分為多個列。
考慮一個包含名為“teams”的單列的DataFrame,其中包含團隊名稱列表:
import pandas as pd df = pd.DataFrame({ "teams": [[ "SF", "NYG" ] for _ in range(7)] })
要拆分此列將“teams”列分成兩列“team1”和“team2”,我們可以利用DataFrame 建構子以及to_list 建立的清單
選項1:修改現有DataFrame
使用to_list 方法,我們可以將「teams」列表轉換為列表列表,可用於建立新的「team1」和「team2」欄位:
df[['team1', 'team2']] = pd.DataFrame(df['teams'].tolist(), index=df.index)
此操作修改原始DataFrame使用新欄位:
teams team1 team2 0 [SF, NYG] SF NYG 1 [SF, NYG] SF NYG 2 [SF, NYG] SF NYG 3 [SF, NYG] SF NYG 4 [SF, NYG] SF NYG 5 [SF, NYG] SF NYG 6 [SF, NYG] SF NYG
選項2:建立新的DataFrame
或者,如果需要,我們可以使用分割列建立一個新的DataFrame:
df3 = pd.DataFrame( df['teams'].tolist(), columns=['team1', 'team2'] )
此動作建立一個單獨的DataFrame:
team1 team2 0 SF NYG 1 SF NYG 2 SF NYG 3 SF NYG 4 SF NYG 5 SF NYG 6 SF NYG
請注意,應用apply(pd.Series)函數來實現此分割會明顯變慢,不建議用於較大的資料集。
以上是如何有效地將 Pandas 清單列拆分為多列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!