copipe Python | pandasのrollingに窓関数を指定する。

概要

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