熊猫窗口平均值

时间:2020-06-15 10:40:05

标签: python pandas average calculation operation

假设我们有一个这样的数据框:

Time = ['00:01', '00:02','00:03','00:04','00:05','00:06','00:07','00:08','00:09']
Value = [2.5, 3.2, 4.6, 3.6, 1.5, 2.5, 0.4, 5.7, 1.5]   
df = pd.DataFrame({'Time':Time, 'Value':Value})

为简单起见,我们将只计算行本身,前行和后行的平均值。所以我会寻找这个结果:

df
Time    Value
00:01   2.85 
00:02   3.43
00:03   3.8
00:04   3.23
00:05   2.53
00:06   1.47
00:07   2.87
00:08   2.53
00:09   3.6

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您也可以使用rolling.mean,设置center=Truemin_periods=2来考虑边缘:

df['Value'] = df.Value.rolling(3, min_periods=2, center=True).mean().round(2)

print(df)

    Time  Value
0  00:01   2.85
1  00:02   3.43
2  00:03   3.80
3  00:04   3.23
4  00:05   2.53
5  00:06   1.47
6  00:07   2.87
7  00:08   2.53
8  00:09   3.60