我有一个如下所示的数据框(请参见下文):
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
的第一个实例并然后将其求和并在其各自的团队
中写入该值。
我到达以下位置后遇到了障碍:
NBAData['TotalTeamVal'] = NBAData.groupby(['Team', 'Player Name'])['PlayerMarketValue'].first().sum()
即:我正在寻找(特别注意All Stars
行):
最佳答案
在不太了解数据结构的情况下,我会假设一名球员只能参加其中一支球队,因此我会开始
- 删除与每个玩家关联的重复行
- 将团队中球员的值(value)相加
- 重置索引并使用团队列作为键将所有内容合并回主
DataFrame
pd.merge(df,
df.drop_duplicates('Player Name').groupby(['Team'])['PlayerMarketValue'].sum().reset_index(),
on='Team',
suffixes= ['', '_Team']
)
关于python - 如何对 groupby 结果的第一个值求和并将其写入相关组中的 df 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58061860/