考虑一个包含列表的列的 Pandas DataFrame:
import pandas as pd df = pd.DataFrame({"teams": [[["SF", "NYG"]] for _ in range(7)]}) teams 0 [[SF, NYG]] 1 [[SF, NYG]] 2 [[SF, NYG]] 3 [[SF, NYG]] 4 [[SF, NYG]] 5 [[SF, NYG]] 6 [[SF, NYG]]
要将此列转换为两个单独的列,请按照以下步骤操作步骤:
import pandas as pd d1 = {'teams': [['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'], ['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG']]} df2 = pd.DataFrame(d1) print (df2) teams 0 [SF, NYG] 1 [SF, NYG] 2 [SF, NYG] 3 [SF, NYG] 4 [SF, NYG] 5 [SF, NYG] 6 [SF, NYG]
分配一个具有所需列的新 DataFrame:
df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index) print (df2) 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
或者,可以创建一个新的 DataFrame分别:
df3 = pd.DataFrame(df2['teams'].to_list(), columns=['team1','team2']) print (df3) 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中文网其他相关文章!