如果我有一个像这样的 pandas 数据框:
Col A
0 2
1 3
2 5
3 4
4 6
5 2
6 3
7 1
8 1
9 7
还有一些像这样的奇怪数值
n = 3
如何根据 n 的一半对要替换的值、之前和之后的值进行平均。对于 n = 3,我将计算之前和之后的值的平均值。这样我就得到了这样的 pandas 数据框:
Col A Col B
0 2 np.nan
1 3 3.33
2 5 4
3 4 5
4 6 4
5 2 3.67
6 3 2
7 1 2.5
8 1 3
9 7 np.nan
第一个和最后一个值是 np.nan,因为它们之前/之后没有值。
最佳答案
您可以将rolling
与center
选项一起使用:
n = 3
df['Col A'].rolling(n, center=True).mean()
输出:
0 NaN
1 3.333333
2 4.000000
3 5.000000
4 4.000000
5 3.666667
6 2.000000
7 1.666667
8 3.000000
9 NaN
Name: Col A, dtype: float64
关于python - 如何根据某个奇数n对给定行之前和之后的pandas数据帧列进行平均?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57890614/