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