在python中以id / group移动平均值并定义间隔

时间:2016-10-06 16:01:18

标签: python csv pandas numpy moving-average

给定的是具有以下列和值的csv数据集(示例)。 我想根据每个ID在我的csv数据中添加新列,其中移动平均值为S1。 S1是我的测量值。时间帧t应为3.这就是我的数据集当前的样子。

id  S1  
1   3
1   4
1   2
1   6
1   9
2   3
2   1
2   2
2   3
2   8
2   6
3   1
3   4
3   2
3   8
3   5

这就是我想做的事情:

id  S1   movA  
1   3    NaN
1   4    NaN
1   2    3.000
1   6    4.000
1   9    5.667
2   3    NaN
2   1    NaN
2   2    2.000
2   3    2.000
2   8    4.333
2   6    5.333
3   1    NaN
3   4    NaN
3   2    2.333
3   8    4.667
3   5    5.000

1 个答案:

答案 0 :(得分:1)

groupbyrollingmean

一起使用
g = df.groupby('id').S1
rolls = [2, 3, 4, 5]
pd.concat([g.rolling(i).mean() for i in rolls], axis=1, keys=rolls)

enter image description here