我不是数学专家,但是stahlous解释你需要什么here https://github.com/pydata/pandas/pull/8238#issuecomment-56139375.
我尝试测试一下:
import pandas as pd
ser = pd.Series([1,1,1], index=pd.date_range('1/1/2000', periods=3))
print ser
rm1 = pd.rolling_window(ser, window=[2,2,2], mean=False)
rm2 = pd.rolling_window(ser, window=[2,2,2]) #, mean=True
print rm1
#
#2000-01-01 NaN
#2000-01-02 NaN
#2000-01-03 6
#Freq: D, dtype: float64
print rm2
#
#2000-01-01 NaN
#2000-01-02 NaN
#2000-01-03 1
#Freq: D, dtype: float64
我设置window
to ndarray
([2,2,2]
)和计算的加权和(rm1
) 和加权平均值 (rm2
).
pandas.rolling_window http://pandas.pydata.org/pandas-docs/stable/generated/pandas.rolling_window.html:
window : int 或 ndarray:
加权窗口规范。如果窗口是整数,则将其视为窗口长度,并且需要 win_type
mean : 布尔值,默认 True
如果 True 计算加权平均值,否则计算加权和