Python 如何基于某个奇数n对给定行前后的数据帧列求平均值?
如果我有一个像这样的熊猫数据框:Python 如何基于某个奇数n对给定行前后的数据帧列求平均值?,python,python-3.x,pandas,Python,Python 3.x,Pandas,如果我有一个像这样的熊猫数据框: Col A 0 2 1 3 2 5 3 4 4 6 5 2 6 3 7 1 8 1 9 7 Col A Col B 0 2 np.nan 1 3 3.33 2 5 4 3 4 5 4 6 4 5
Col A
0 2
1 3
2 5
3 4
4 6
5 2
6 3
7 1
8 1
9 7
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
还有一些像这样奇怪的数值
n = 3
如何根据n的一半来平均我要替换的值、之前和之后的值。对于n=3,我将平均前后的值。这样我就得到了如下的熊猫数据帧:
Col A
0 2
1 3
2 5
3 4
4 6
5 2
6 3
7 1
8 1
9 7
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