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

解决Pandas分组加权平均的ZeroDivisionError及RuntimeWarning问题

解决分组加权平均的ZeroDivisionError问题

问题根源是部分分组的count列总和为0,导致加权平均计算时触发除以0的错误。直接用np.average或np.ma.average无法优雅处理这种边界情况,建议自定义计算函数来控制逻辑:

  • 先计算分组内count的总和,判断是否为0
  • 若总和为0,可根据业务需求返回0或NaN
  • 若总和不为0,再计算加权平均

代码实现

def weighted_avg(x):
    total_count = x['count'].sum()
    if total_count == 0:
        return 0  # 也可返回np.nan,根据实际业务场景调整
    return (x['average_speed'] * x['count']).sum() / total_count

df_byday = df_merged.groupby("count_date").apply(weighted_avg)

说明

  • 手动计算加权平均(分子为average_speed与count的乘积之和,分母为count总和),逻辑完全可控,不会触发错误或警告
  • 若选择返回np.nan,后续可通过df_byday.fillna(0)将空值替换为0,适配不同业务需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:54:25