data = {‘A’:list(range(250)), ‘B’: list(range(251,501))}
dates = pd.date_range(‘2023-01-17’, period=250, freq=‘D’)
df = pd.DataFrame(data, index=dates)
我想要滚动 2 个日历月,意思如下:
A B
2023-02-28 21.0 272.0
2023-03-31 44.0 295.0
2023-04-30 73.0 324.0
…
2023-08-31 222.5 473.5
并滚动 2 个日历月标准发展
A B
2023-02-28 12.556 12.556
2023-03-31 17.175 17.175
2023-04-30 17.175 17.175
…
2023-08-31 15.732 15.732
注意:任何列都可以有
NaN
为了实现你想要的,我认为你只需要每月重新采样数据并应用滚动窗口 2 来计算平均值和标准差。尝试使用以下代码:
rolling_mean = df.resample('M').mean().rolling(window=2).mean()
rolling_std = df.resample('M').mean().rolling(window=2).std()