将 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中文网其他相关文章!