【发布时间】:2018-10-29 01:32:06
【问题描述】:
我有一个带有这样时间索引的 pandas 数据框
import pandas as pd
import numpy as np
idx = pd.date_range(start='2000',end='2001')
df = pd.DataFrame(np.random.normal(size=(len(idx),2)),index=idx)
看起来像这样:
0 1
2000-01-01 0.565524 0.355548
2000-01-02 -0.234161 0.888384
我想计算一个滚动平均值
df_avg = df.rolling(60).mean()
但始终排除对应于(比方说)+- 2 天前 10 天的条目。换句话说,对于每个日期,df_avg 应该包含前 60 个条目的平均值(带有 ewm 或 flat 的指数),但不包括从 t-48 到 t-52 的条目。我想我应该做一种滚动面具,但我不知道怎么做。我也可以尝试计算两个单独的平均值并获得结果作为差异,但它看起来很脏,我想知道是否有更好的方法可以推广到其他非线性计算......
非常感谢!
【问题讨论】:
标签: python pandas mask rolling-average