我想知道如何获得前面两行、本身和后面两行的滚动和。
我的尝试
import numpy as np
import pandas as pd
df = pd.DataFrame({'A': range(1,7)},index=range(1,7))
df['new'] = 0
for i in range(-2,2+1):
df['new'] += df.A.shift(i)
df
输出
A new
1 1 NaN
2 2 NaN
3 3 15.0
4 4 20.0
5 5 NaN
6 6 NaN
问题
我上面的工作给出了正确的答案,但要计算平均值,我必须除以5,它不太容易推广。有没有内置的方法或更好的替代方法?
我们有rolling
df.A.rolling(5,center=True).mean()
Out[257]:
1 NaN
2 NaN
3 3.0
4 4.0
5 NaN
6 NaN
Name: A, dtype: float64