Python中如何为月度滚动平均添加1个月滞后参数?
月度滚动平均加1个月滞后的实现方法
直接在你的滚动平均代码末尾加上.shift(1)就能满足需求,修改后的完整代码:
history_data_resampled.rolling(window=12).mean().shift(1)
为什么这么做?
- 原代码
rolling(window=12).mean()算出的是每个月份自身对应的过去12个月滚动平均,比如10月的数据就是包含10月在内的前12个月平均 .shift(1)会把整个结果序列向后挪1个月度周期,这样10月的位置就会显示9月的滚动平均值,正好符合你“当前月份输出上月平均”的要求
还有一种替代写法,如果你想在滚动窗口阶段就排除当前月份,可以给rolling加closed='left'参数:
history_data_resampled.rolling(window=12, closed='left').mean()
这种方式下,每个月份计算的是不包含自身的过去12个月平均,效果和先计算再shift一样,但.shift(1)的写法更直白易懂,优先推荐。
内容的提问来源于stack exchange,提问作者Nada
相关产品推荐
相关产品推荐

