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

Python Pandas按多列分组计算球队分区胜率均值报错求助

解决方案:计算同分区其他球队的W-L%均值

问题背景

现有包含2000-2022年NFL球队数据的DataFrame,结构如下:

Tm        Conference   Division    W-L%.    Year  
Bills         AFC        East      0.813    2022   
Dolphins      AFC        East      0.529    2022  
Patriots      AFC        East      0.471    2022    
Jets          AFC        East      0.412    2022   
Cowboys       NFC        East      0.706    2022   
Giants        NFC        East      0.559    2022   
Eagles        NFC        East      0.824    2022  
Commanders    NFC        East      0.500    2022    

需要新增Division W-L%列,计算当前球队同分区、同联盟、同年份的其他所有球队W-L%均值,公式为:
(同分组W-L%总和 - 当前球队W-L%) / (分组球队数 - 1)

核心问题分析

你之前报错的原因是分组维度错误:不应该将Tm(球队)纳入分组键,否则每个分组仅包含单支球队的数据,会触发除以零错误,且无法获取同分区其他球队的统计值。正确的分组维度应为Conference、Division、Year。

实现代码

方法1:分步计算(清晰直观)

# 计算每个分区-联盟-年份组的W-L%总和
df['div_total'] = df.groupby(['Conference', 'Division', 'Year'])['W-L%'].transform('sum')
# 计算每个分组的球队数量
df['div_team_count'] = df.groupby(['Conference', 'Division', 'Year'])['Tm'].transform('count')
# 套用公式计算目标列
df['Division W-L%'] = (df['div_total'] - df['W-L%']) / (df['div_team_count'] - 1)
# 可选:删除中间辅助列
df = df.drop(['div_total', 'div_team_count'], axis=1)

方法2:简洁版(一行transform)

df['Division W-L%'] = df.groupby(['Conference', 'Division', 'Year'])['W-L%'].transform(
    lambda x: (x.sum() - x) / (len(x) - 1)
)

结果验证

执行后将得到符合预期的DataFrame:

Tm        Conference   Division    W-L%.    Year  Division W-L%
Bills         AFC        East      0.813    2022    0.470667
Dolphins      AFC        East      0.529    2022    0.565333
Patriots      AFC        East      0.471    2022    0.584667
Jets          AFC        East      0.412    2022    0.604333
Cowboys       NFC        East      0.706    2022    0.627667
Giants        NFC        East      0.559    2022    0.676667
Eagles        NFC        East      0.824    2022    0.588333
Commanders    NFC        East      0.500    2022    0.696333

内容的提问来源于stack exchange,提问作者bobfreedy00

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 05:17:39