猿问

如何对 groupby 结果的第一个值求和并将其写为相关组中的 df 列

我有一个看起来像这样的数据框(请参见下文):


Player Name         Team                    PlayerMarketValue


Steph Curry         Golden State Warriors   169027.4782

Steph Curry         Golden State Warriors   169027.4782

Steph Curry         Golden State Warriors   169027.4782

Steph Curry         Golden State Warriors   169027.4782

Lebron James        All Stars               120896.3772

Lebron James        All Stars               120896.3772

Lebron James        All Stars               120896.3772

Luka Doncic         All Stars               36789.6562

Luka Doncic         All Stars               36789.6562

Luka Doncic         All Stars               36789.6562


我正在尝试找到一种对两者进行分组的好方法Team,然后PlayerName从这个中提取第一个实例,PlayerMarketValue然后对其求和,然后将此值写入其各自的Team.


在到达以下位置后,我遇到了障碍:


NBAData['TotalTeamVal'] = NBAData.groupby(['Team', 'Player Name'])['PlayerMarketValue'].first().sum()

即:我正在寻找(All Stars特别注意行):

白猪掌柜的
浏览 114回答 3
3回答

慕桂英3389331

在不了解数据结构的情况下,我会假设一名球员只能加入其中一支球队,因此我会开始删除与每个玩家关联的重复行总结团队中球员的价值观DataFrame使用团队列作为键重置索引并将所有内容合并回主目录pd.merge(df,           df.drop_duplicates('Player Name').groupby(['Team'])['PlayerMarketValue'].sum().reset_index(),           on='Team',           suffixes= ['', '_Team']          )

翻翻过去那场雪

您可以对新数据框进行分组,获取总值并合并回来:df.merge(df.groupby(['Player Name', 'Team'])            .PlayerMarketValue.first()            .groupby(['Team']).sum(),          left_on='Team',          right_index=True,          suffixes=('','Total'))

POPMUISE

你可以试试下面提到的方法。我希望这能帮到您。NBAData=NBAData.groupby(["Player_name","Team"]).first()
随时随地看视频慕课网APP

相关分类

Python
我要回答