Groupby和具有相同值的多个列的总和

时间:2018-07-24 05:28:23

标签: python pandas group-by

我正在处理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()

我想做的是总结每个团队获得的返航点和返航点,并将其保存到新的数据框中。 我的新数据框将如下所示:

enter image description here

这意味着将为同一团队添加Homepoint和awaypoint,因为我在数据框中有5个团队。 任何人都可以建议如何做。

我使用了以下代码,但它不起作用。

Point =  data_Dub.groupby(['SimStage','HomeTeam','AwayTeam])['HomePoint','AwayPoint'].sum()

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以分别为sumHomeTeam汇总AwayTeam,然后对{{}中的列使用add,最后sort_indexreset_index 1}},更改列名称以及必要的列顺序:

MultiIndex