Python - Statsmodels.tsa.seasonal_decompose - 缺少数据帧头部和尾部的值

时间:2016-01-07 01:42:59

标签: python pandas statsmodels

我有以下数据框,我称之为“sales_df”:

            Value
Date             
2004-01-01      0
2004-02-01    173
2004-03-01    225
2004-04-01    230
2004-05-01    349
2004-06-01    258
2004-07-01    270
2004-08-01    223
...           ...
2015-06-01    218
2015-07-01    215
2015-08-01    233
2015-09-01    258
2015-10-01    252
2015-11-01    256
2015-12-01    188
2016-01-01     70

我想将其趋势与季节性组件分开,为此,我使用statsmodels.tsa.seasonal_decompose通过以下代码:

decomp=sm.tsa.seasonal_decompose(sales_df.Value)
df=pd.concat([sales_df,decomp.trend],axis=1)
df.columns=['sales','trend']

这让我知道了:

            sales       trend
Date                         
2004-01-01      0         NaN
2004-02-01    173         NaN
2004-03-01    225         NaN
2004-04-01    230         NaN
2004-05-01    349         NaN
2004-06-01    258         NaN
2004-07-01    270  236.708333
2004-08-01    223  248.208333
2004-09-01    243  251.250000
...           ...         ...
2015-05-01    270  214.416667
2015-06-01    218  215.583333
2015-07-01    215  212.791667
2015-08-01    233         NaN
2015-09-01    258         NaN
2015-10-01    252         NaN
2015-11-01    256         NaN
2015-12-01    188         NaN
2016-01-01     70         NaN

请注意,Trend系列的开头和结尾都有6个NaN。 所以我问,是吗?为什么会这样?

1 个答案:

答案 0 :(得分:5)

这是预期的,因为如果未指定seasonal_decompose参数(如您所做),filt默认使用对称移动平均值。频率是从时间序列推断出来的。 https://searchcode.com/codesearch/view/86129185/