所有人。我有一个熊猫DataFrame,包含大约500万行,其中一个列包含有关电信号的信息。我想用前后一步来计算每个点的平均值,例如,对于一个指数为10的点,计算(8,9,11,12)之间的平均值。
我知道有一种滚动方法,但它只从前一点取值。我不想写一个循环。
发布于 2020-03-16 12:34:39
您可以通过在center方法中将pandas.DataFrame.rolling()参数设置为True来实现这一点。如文件所述:
默认情况下,结果将设置为窗口的右侧。可以通过设置center=True将其更改为窗口的中心。
下面是一个简单的例子:
>>> serie = pd.Series(range(15))
>>> print(serie.rolling(5, center=True).mean())
0 NaN
1 NaN
2 2.0
3 3.0
4 4.0
5 5.0
6 6.0
7 7.0
8 8.0
9 9.0
10 10.0
11 11.0
12 12.0
13 NaN
14 NaNhttps://stackoverflow.com/questions/60706036
复制相似问题