在 Python 中使用 Pandas 为 groupby 对象计算 WMAPE
Calculate WMAPE for groupby object with Pandas in Python
我有一个名为“收入”的数据框,如下所示:
我想计算每个月的 WMAPE。
https://en.wikipedia.org/wiki/WMAPE
维基百科建议 WMAPE 是一个标量,我正在努力弄清楚如何为 groupby 对象计算它。我知道我必须从这样做开始:
revenue.groupby('month')
要按月计算不带分组的 WMAPE,这是我的代码:
sum(abs(revenue['actual'] - revenue['forecast'])) / sum(abs(revenue['actual']))
Out[1]: 0.12206572769953052
如何为 groupby 对象执行此操作?
您可以将您的计算代码传递给groupby.apply
:
revenue.groupby('month').apply(lambda x:sum(abs(x['actual'] - x['forecast'])) / sum(abs(x['actual'])))
# month
# July 0.109890
# June 0.131148
# dtype: float64
我有一个名为“收入”的数据框,如下所示:
我想计算每个月的 WMAPE。
https://en.wikipedia.org/wiki/WMAPE
维基百科建议 WMAPE 是一个标量,我正在努力弄清楚如何为 groupby 对象计算它。我知道我必须从这样做开始:
revenue.groupby('month')
要按月计算不带分组的 WMAPE,这是我的代码:
sum(abs(revenue['actual'] - revenue['forecast'])) / sum(abs(revenue['actual']))
Out[1]: 0.12206572769953052
如何为 groupby 对象执行此操作?
您可以将您的计算代码传递给groupby.apply
:
revenue.groupby('month').apply(lambda x:sum(abs(x['actual'] - x['forecast'])) / sum(abs(x['actual'])))
# month
# July 0.109890
# June 0.131148
# dtype: float64