概要
df["close"].ewm(span=5, adjust=False).mean()を使うことで、pandasでEMA(指数平滑移動平均)を求めることができる。
(注:ewm()は、初期値としてSMAではなく最初の値を使うので、最初の数個の計算値は一般的なEMAと大きく異なることがある。)
コード
import pandas as pd
df = pd.DataFrame([109.83, 110.35, 110.73, 110.61, 110.70, 110.18, 109.73, 109.84, 109.63], columns=["close"])
df["EMA"] = df["close"].ewm(span=5, adjust=False).mean()
print(df)
結果
close EMA 0 109.83 109.830000 1 110.35 110.003333 2 110.73 110.245556 3 110.61 110.367037 4 110.70 110.478025 5 110.18 110.378683 6 109.73 110.162455 7 109.84 110.054970 8 109.63 109.913314