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

标签 python pandas dataframe analysis

我有一个如下所示的数据框(请参见下文):

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

我正在尝试找到一种按 TeamPlayerName 进行分组的好方法,并从中获取 PlayerMarketValue 的第一个实例并然后将其求和并在其各自的团队中写入该值。

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

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

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

enter image description here

最佳答案

在不太了解数据结构的情况下,我会假设一名球员只能参加其中一支球队,因此我会开始

  1. 删除与每个玩家关联的重复行
  2. 将团队中球员的值(value)相加
  3. 重置索引并使用团队列作为键将所有内容合并回主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/

相关文章:

python - 列(索引格式)到数据框?

python - Pandas df 根据整数索引列表对行和列重新排序

python - Python 中的 Selenium : Breaking a While Loop After an Onclick Attribute Changes

Python - 从文件夹中获取所有文件的列表(有更多选项)

python - Pandas 'replace' 如何在 'loc' 之后工作?

Python:在复杂数组上查找每行的多列

r - 数据帧内的数据帧?

r - 如何将包含十进制数字的因子列转换为数字?

python - 如何将列表元素添加到字典中

python - 无法预填充 django 数据库