我有一个PANDAS数据框,我希望返回时间序列中每个X项的函数 - 例如,我的数据框可能看起来像
date value
2017-01-01 1
2017-01-02 5
2017-01-03 2
2017-01-04 1
2017-01-05 6
2017-01-06 6
例如,如果我希望能够提取X为3的每个X值的滚动平均值,我希望显示一个数据帧
date value
2017-01-03 2.666
2017-01-04 2.666
2017-01-05 3
2017-01-06 4.333
是否有数据框操作可以让我选择一组运行函数的X值?
答案 0 :(得分:1)
我认为您需要使用mean
rolling
,然后根据需要NaN
删除dropna
:
df['value'] = df['value'].rolling(3).mean()
df = df.dropna(subset=['value'])
print (df)
date value
2 2017-01-03 2.666667
3 2017-01-04 2.666667
4 2017-01-05 3.000000
5 2017-01-06 4.333333
还可以使用min_periods
参数来避免NaN
s:
df['value'] = df['value'].rolling(3, min_periods=1).mean()
print (df)
date value
0 2017-01-01 1.000000
1 2017-01-02 3.000000
2 2017-01-03 2.666667
3 2017-01-04 2.666667
4 2017-01-05 3.000000
5 2017-01-06 4.333333