【Python】 季節性分解実行時のエラーへの対処
季節性分解のやり方を調べていると、seasonal_decomposeメソッドを利用すれば良いことが分かりました。ただ、実行すると
TypeError: ‘numpy.float64’ object cannot be interpreted as an integer
というエラーが出てしまいました。
import statsmodels.api as sm df = pd.read_csv('time_series_data.csv', index_col=0) df = df.reset_index() df['datetime'] = pd.to_datetime(df['datetime'], format='%Y/%m/%d') df['y'] = df['y'].values.astype(float) df = df.set_index(['datetime']) # ここでエラー res = sm.tsa.seasonal_decompose(df.values, freq=7) res.plot() plt.show()
このエラーはstatsmodels\tsa\filters\filtertools.pyの下記コードを
elif nsides == 2: trim_head = np.ceil(len(filt)/2.) - 1 or None trim_tail = (np.ceil(len(filt)2.) - len(filt) % 2) or None
下記のように書き換えると動作するようになりました。
elif nsides == 2: trim_head = np.ceil(len(filt)/2.) - 1 or None trim_head = (int)(trim_head) trim_tail = (np.ceil(len(filt)2.) - len(filt) % 2) or None trim_tail = (int)(trim_tail)