概要
win_type='窓関数名'を指定することで、pandasのrollingに窓関数を指定することができる。下の例の場合、通常平均(1+2+4)/(1+1+1)=2.33となるところ、三角窓を指定することで、三角平均(1*0.5+2*1.0+4*0.5)/(0.5+1.0+0.5)=2.25となっている。
コード
import pandas as pd
df = pd.DataFrame([1, 2, 4, 4, 5], columns=["a"])
df["b"] = df["a"].rolling(3).mean()
df["c"] = df["a"].rolling(3, win_type='triang').mean()
print(df)
結果
a b c 0 1 NaN NaN 1 2 NaN NaN 2 4 2.333333 2.25 3 4 3.333333 3.50 4 5 4.333333 4.25