小编Ind*_*lli的帖子

Pandas:自定义 WMAPE 函数聚合函数到多列而无需 for 循环?

目标:在多个预测列和一个实际数据列上使用自定义 WMAPE(加权平均绝对百分比误差)函数对 Pandas 数据框进行分组,无需 for 循环。我知道输出数据帧的 for 循环和合并可以解决问题。我想有效地做到这一点。

有: WMAPE函数,成功使用WMAPE函数在dataframe的一个预测列上。一列实际数据,可变数量的预测列。

输入数据: Pandas DataFrame 具有多个分类列(City、Person、DT、HOUR)、一个实际数据列(Actual)和四个预测列(Forecast_1 ... Forecast_4)。请参阅 csv 链接:https ://www.dropbox.com/s/tidf9lj80a1dtd8/data_small_2.csv ? dl =1

需要: WMAPE 函数在 groupby 期间在多个列上应用,并将预测列列表输入 groupby 行。

所需输出:具有分类组列和 WMAPE 的所有列的输出数据框。标签是首选但不是必需的(下面的输出图像)。

到目前为止成功的代码: 两个 WMAPE 函数:一个接收两个系列并输出单个浮点值 (wmape),一个用于 groupby (wmape_gr) 的结构化:

def wmape(actual, forecast):
    # we take two series and calculate an output a wmape from it

    # make a series called mape
    se_mape = abs(actual-forecast)/actual

    # get a float of the sum of the actual
    ft_actual_sum = …
Run Code Online (Sandbox Code Playgroud)

python forecasting pandas pandas-apply pandas-groupby

4
推荐指数
2
解决办法
3170
查看次数