首页 > 解决方案 > 任意步长的点周围的平均值

问题描述

大家。我有一个包含大约 500 万行的 pandas DataFrame,其中一列包含有关电信号的信息。我想通过向前和向后一步计算每个点周围的平均值,例如,对于索引为 10 的点,计算 (8, 9, 11, 12) 之间的平均值。

我知道有一种滚动方法,但它只从这一点开始取值。我不想写一个循环。

标签: pythonpandas

解决方案


您可以通过将方法中的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     NaN

推荐阅读