2015-12-24 21 views
6

を分解する、私はいくつかの時系列とDataFrame持っている:私はその季節からその傾向を分離できるように、第1の時系列dividaを分解したいトレンド、季節や残留時系列元素

  divida movav12  var varmovav12 
Date            
2004-01  0  NaN  NaN   NaN 
2004-02  0  NaN  NaN   NaN 
2004-03  0  NaN  NaN   NaN 
2004-04  34  NaN  inf   NaN 
2004-05  30  NaN -0.117647   NaN 
2004-06  44  NaN 0.466667   NaN 
2004-07  35  NaN -0.204545   NaN 
2004-08  31  NaN -0.114286   NaN 
2004-09  30  NaN -0.032258   NaN 
2004-10  24  NaN -0.200000   NaN 
2004-11  41  NaN 0.708333   NaN 
2004-12  29 24.833333 -0.292683   NaN 
2005-01  31 27.416667 0.068966 0.104027 
2005-02  28 29.750000 -0.096774 0.085106 
2005-03  27 32.000000 -0.035714 0.075630 
2005-04  30 31.666667 0.111111 -0.010417 
2005-05  31 31.750000 0.033333 0.002632 
2005-06  39 31.333333 0.258065 -0.013123 
2005-07  36 31.416667 -0.076923 0.002660 

を残りの成分。

私は答えhereを見つけ、次のコードを使用しようとしています:

import statsmodels.api as sm 

s=sm.tsa.seasonal_decompose(divida.divida) 

をしかし、私はこのエラーを取得しておいてください。

Traceback (most recent call last): 
File "/Users/Pred_UnBR_Mod2.py", line 78, in <module> s=sm.tsa.seasonal_decompose(divida.divida) 
File "/Library/Python/2.7/site-packages/statsmodels/tsa/seasonal.py", line 58, in seasonal_decompose _pandas_wrapper, pfreq = _maybe_get_pandas_wrapper_freq(x) 
File "/Library/Python/2.7/site-packages/statsmodels/tsa/filters/_utils.py", line 46, in _maybe_get_pandas_wrapper_freq 
freq = index.inferred_freq 
AttributeError: 'Index' object has no attribute 'inferred_freq' 

誰かがそれにいくつかの光を当てることができますか?

+0

あなた 'divida.index.dtype'は何ですか? DatetimeIndex – TomAugspurger

答えて

12

作品罰金、あなたのindexDateTimeIndexに変換するとき:経由

df.reset_index(inplace=True) 
df['Date'] = pd.to_datetime(df['Date']) 
df = df.set_index('Date') 
s=sm.tsa.seasonal_decompose(df.divida) 

<statsmodels.tsa.seasonal.DecomposeResult object at 0x110ec3710> 

アクセスコンポーネントを:

s.resid 
s.seasonal 
s.trend 
+1

簡単な質問:その結果にアクセスするにはどうすればよいですか?私は0x110ec3710で abutremutante

+1

心配しないでください:s.resid、s.seasonal、s.trend – abutremutante

+0

ありがとう@Stefan、私の人生を保存しました! – Amy21