从pandas dataframe

时间:2017-12-10 20:51:23

标签: python pandas dataframe

我有一个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值?

1 个答案:

答案 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