You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中按联赛分组计算球队评分与组内最高分差值并新增列

按联赛分组计算球队评分与联赛最高分的差值

核心思路

用groupby结合transform方法,将每个联赛的最高分广播到该联赛的所有球队行,再直接计算与当前球队评分的差值,避免分组后合并的繁琐操作。

示例代码

  1. 先构造示例DataFrame(可替换为你的实际数据):
import pandas as pd

data = {
    '球队': ['凯尔特人', '猛龙', '湖人', '马刺', '巴萨', '皇马'],
    '联赛': ['NBA', 'NBA', 'NBA', 'NBA', '西甲篮球', '西甲篮球'],
    '评分': [100, 85, 92, 88, 95, 90]
}
df = pd.DataFrame(data)
  1. 一步计算并添加差值列:
# 计算每个联赛的最高分,广播到对应行后减去当前评分,生成新列
df['与最高分差值'] = df.groupby('联赛')['评分'].transform('max') - df['评分']

结果展示

运行后DataFrame会新增与最高分差值列,效果如下:

球队联赛评分与最高分差值
凯尔特人NBA1000
猛龙NBA8515
湖人NBA928
马刺NBA8812
巴萨西甲篮球950
皇马西甲篮球905

关键说明

  • groupby('联赛')['评分'].transform('max'):会为每个联赛的所有行返回该联赛的最高分,生成与原DataFrame长度一致的序列,解决了直接用max()得到分组汇总值无法对应原行的问题。
  • 如果需要保留联赛最高分的中间列,可以拆分两步:
df['联赛最高分'] = df.groupby('联赛')['评分'].transform('max')
df['与最高分差值'] = df['联赛最高分'] - df['评分']

内容的提问来源于stack exchange,提问作者Saba Al shawa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 21:46:06