基于Datetime.Offset实现时间序列滚动移动平均的方案与报错解决
滚动年度均值实现方案咨询
基础场景
持有日频粒度时间序列数据,计划计算指定周期的滚动平均值,确认是否可通过Datetime.Offset类参数实现需求。
示例测试数据构造代码:
import pandas as pd l = [7.71, 7.79, 6.80, 6.44, 6.46, 6.80] index = pd.DatetimeIndex(['2016-01-04', '2016-01-05', '2016-01-06', '2017-01-04' ,'2017-01-05' ,'2017-01-06']) df = pd.DataFrame(l, columns=['col'], index = index)
预期计算结果
针对上述样本数据,计算滚动年度均值的预期输出为:
- 2017-01-04 对应均值 7.185
- 2017-01-05 对应均值 6.873
- 原描述中标注的重复日期
2017-01-05对应均值 6.625,结合样本日期推算应为2017-01-06的计算结果
已尝试的实现及报错
- 尝试给rolling接口传入freq参数指定年度滚动窗口:
返回报错:df.rolling(window=1, freq='A').mean()TypeError: rolling() got an unexpected keyword argument 'freq' - 尝试将自定义DateOffset对象传入rolling的window参数(原代码中变量名
eps为笔误,实际为已定义的df):
返回报错:do = pd.DateOffset(years = 1) df.rolling(window=do).mean()ValueError: <DateOffset: years=1> is a non-fixed frequency
核心待解决问题
- 该年度滚动均值计算需求是否可通过pandas原生rolling接口实现
- 若原生接口不支持,需要调整为哪种技术方案完成计算
内容的提问来源于stack exchange,提问作者Ulf
相关产品推荐
相关产品推荐

