答案 0 :(得分:4)
您还可以center=True
提供DF.rolling.sum()
(默认情况下,标签设置在窗口的右边缘),然后从中获取每个第三个切片。此外,您可以将最小观察数设置为min_periods
,使其等于1,基本上说,在遇到至少min_periods
个非空值之前,不会设置任何输出值。
df.A.rolling(window=3, min_periods=1, center=True).sum().iloc[::3].astype(int)
1 30
4 120
7 210
10 190
Name: A, dtype: int32
答案 1 :(得分:3)
这将完成它
df = pd.DataFrame(dict(A=np.arange(10, 101, 10)), np.arange(1, 11))
pd.Series(np.convolve(df.A.values, [1, 1, 1])[1::3], df.index[0::3])
1 30
4 120
7 210
10 190
dtype: int64