我正在处理Pandas数据框,并具有以下数据框:
data =pd.DataFrame()
data['HomeTeam'] = ['A','B','C','D','E']
data['AwayTeam'] = ['E','D','A','B','C']
data['HomePoint'] = [1,3,0,1,3]
data['AwayPoint'] = [1,0,3,1,0]
data ['Match'] = data['HomeTeam'].astype(str)+' Vs '+data['AwayTeam'].astype(str)
# I want to duplicate the match
Nsims = 2
data_Dub =pd.DataFrame((pd.np.tile(data,(Nsims,1))))
data_Dub.columns = data.columns
# Then I will assign the stage of the match
data_Dub['SimStage'] = data_Dub.groupby('Match').cumcount()
我想做的是总结每个团队获得的返航点和返航点,并将其保存到新的数据框中。 我的新数据框将如下所示:
这意味着将为同一团队添加Homepoint和awaypoint,因为我在数据框中有5个团队。 任何人都可以建议如何做。
我使用了以下代码,但它不起作用。
Point = data_Dub.groupby(['SimStage','HomeTeam','AwayTeam])['HomePoint','AwayPoint'].sum()
谢谢。
答案 0 :(得分:1)
您可以分别为sum
和HomeTeam
汇总AwayTeam
,然后对{{}中的列使用add
,最后sort_index
,reset_index
1}},更改列名称以及必要的列顺序:
MultiIndex