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

如何在Python中对给定dataframe计算WAPE值用于预测评估

基于pandas DataFrame计算WAPE的实现方案

WAPE(加权绝对百分比误差)是预测场景中常用的精度评估指标,计算公式如下:

WAPE = Σ |实际值 - 预测值| / Σ |实际值|
该指标会根据实际值的量级加权计算误差,不会出现小量级样本误差被过度放大的问题,适配业务侧的精度评估需求。

实现步骤

  • 首先确认你的DataFrame中实际值、预测值对应的列名,下文示例默认实际值列名为y_true,预测值列名为y_pred,使用时替换为你数据集的实际列名即可
  • 仅依赖pandas库即可实现,无需额外安装第三方依赖
  • 代码内置了实际值总和为0的边界情况处理,避免运行报错

代码示例

全量数据集计算WAPE

import pandas as pd

def calculate_wape(df, true_col: str = "y_true", pred_col: str = "y_pred") -> float:
    abs_error_total = (df[true_col] - df[pred_col]).abs().sum()
    actual_total = df[true_col].abs().sum()
    # 处理实际值总和为0的边界场景
    if actual_total == 0:
        return 0.0 if abs_error_total == 0 else float("inf")
    return abs_error_total / actual_total

# 调用示例,替换为你自己的DataFrame变量和对应列名即可
wape_result = calculate_wape(your_df, true_col="实际销量", pred_col="预测销量")
print(f"全量WAPE:{wape_result:.2%}")

分组计算WAPE

如果需要按区域、品类等维度分组计算各分组的WAPE,配合groupby即可实现:

# 按category列分组计算各品类的WAPE
grouped_wape = your_df.groupby("category").apply(
    calculate_wape, true_col="实际销量", pred_col="预测销量"
).reset_index(name="wape")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 13:45:01