3
df = pd.DataFrame({'values':[2,6,1,5,8,9]})
我試圖創建一個名爲sum
的新ROM,它是3個最新值的總和。因此,這將返回此[np.nan, np.nan, 9, 12, 14, 22]
行是3個最新值的總和
df = pd.DataFrame({'values':[2,6,1,5,8,9]})
我試圖創建一個名爲sum
的新ROM,它是3個最新值的總和。因此,這將返回此[np.nan, np.nan, 9, 12, 14, 22]
行是3個最新值的總和
print (df.rolling(3).sum())
values
0 NaN
1 NaN
2 9.0
3 12.0
4 14.0
5 22.0
或者:
print (df['values'].rolling(3).sum())
0 NaN
1 NaN
2 9.0
3 12.0
4 14.0
5 22.0
Name: values, dtype: float64
df['sum'] = df['values'].rolling(3).sum()
print (df)
values sum
0 2 NaN
1 6 NaN
2 1 9.0
3 5 12.0
4 8 14.0
5 9 22.0
Docs。
隨着集中表現,這是一個使用NumPy's 1D convolution
一個方法 -
np.append([np.nan]*2,np.convolve(df['values'],np.ones((3,)),'valid'))