python - 如何对 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
特别注意行):
解决方案
在不了解数据结构的情况下,我会假设一名球员只能加入其中一支球队,因此我会开始
- 删除与每个玩家关联的重复行
- 总结团队中球员的价值观
DataFrame
使用团队列作为键重置索引并将所有内容合并回主目录
pd.merge(df,
df.drop_duplicates('Player Name').groupby(['Team'])['PlayerMarketValue'].sum().reset_index(),
on='Team',
suffixes= ['', '_Team']
)
推荐阅读
- python - 从另一个窗口 PyQt5 打开时未加载窗口内容(一个 .py 中有 2 个类)
- flutter - 如何在 Flutter 的 .env 文件中定义变量?
- python - 具有最大聚合性能的 Pandas groupby 函数很慢。groupby 性能提升
- rust - Rust STM32:webUSB 发布传感器
- r - 在 R 中创建子组
- php - 如何在php中获取相同元素的位置?
- elixir - 处理错误元组列表时是否有标准做法?
- microsoft-cognitive - 表单识别器 S0 层限制
- jquery - 如何从Nodejs接收base64数据并使用jquery显示
- c - 在分子动力学模拟中计算势能