pandas 中的窗口平均值

Windowed average in pandas

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

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

如有任何帮助,我们将不胜感激。

您可以采用 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