data={"value":{"2013-01-01":2878.8,..."2021-12-01":3012.3,}}data=pd.DataFrame(data)data.index=pd.to_datetime(data.index)data=data.rename(columns={"value":"Natural Gas Consumption(BCF)"})plt.figure(figsize=(12,6))sns.lineplot(data=data)plt.title("天然ガス消費量(BCF)")plt.show()
data_sma=data.copy()rolling_obj=data_sma["Natural Gas Consumption(BCF)"].rolling(12)data_sma["SMA(12)"]=rolling_obj.mean()data_sma["RollingMax(12)"]=rolling_obj.max()data_sma["RollingMin(12)"]=rolling_obj.min()plt.figure(figsize=(12,6))sns.lineplot(data=data_sma[["Natural Gas Consumption(BCF)","SMA(12)","RollingMax(12)","RollingMin(12)"]])plt.title("SMA と上下バンド")plt.show()
weights=np.array([0,1,2,3,4,5,5,4,3,2,1,0])defget_wma(values,w=weights):returnnp.sum(w*values)/w.sum()data_wma=data.copy()data_wma["WMA(12, center=True)"]=(data_wma["Natural Gas Consumption(BCF)"].rolling(12,center=True).apply(get_wma,raw=True))data_wma["WMA(12, center=False)"]=(data_wma["Natural Gas Consumption(BCF)"].rolling(12,center=False).apply(get_wma,raw=True))plt.figure(figsize=(12,6))sns.lineplot(data=data_wma)plt.title("加重移動平均(center True/False)")plt.show()
data_ema=data.copy()data_ema["EMA(12)"]=(data_ema["Natural Gas Consumption(BCF)"].ewm(span=12,adjust=False).mean())plt.figure(figsize=(12,6))sns.lineplot(data=data_ema)plt.title("指数移動平均 (EMA)")plt.show()