Python-Statsmodels.tsa.u decompose-数据帧的头部和尾部缺少值
我有以下数据框,我称之为“sales_df”: 我想将其趋势与其季节性成分分开,为此,我使用statsmodels.tsa.seasonal_通过以下代码进行分解:Python-Statsmodels.tsa.u decompose-数据帧的头部和尾部缺少值,python,pandas,statsmodels,Python,Pandas,Statsmodels,我有以下数据框,我称之为“sales_df”: 我想将其趋势与其季节性成分分开,为此,我使用statsmodels.tsa.seasonal_通过以下代码进行分解: decomp=sm.tsa.seasonal_decompose(sales_df.Value) df=pd.concat([sales_df,decomp.trend],axis=1) df.columns=['sales','trend'] 这让我明白: sales trend Date
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
请注意,在趋势系列的开始和结束时有6个NaN。
所以我问,是这样吗?为什么会发生这种情况?这是因为如果没有指定
filt
参数(如您所做的那样),那么季节分解默认使用对称移动平均值。频率是从时间序列推断出来的。
你能告诉我怎么才能没有那些NaN's吗?
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