无频率不允许季节性分解

时间:2018-10-24 23:08:50

标签: python dataframe

尝试对频率不规则的时间序列数据应用季节性分解。看起来像这样:

            modal_price
Period  
2014-11-01  1469
2015-01-01  1258
2015-03-01  1112
2015-04-01  1373
2015-06-01  1370
2015-07-01  1406
2015-08-01  1520
2015-09-01  1860
2015-10-01  1436
2015-11-01  1455

当我使用df.index.freq

时,freq变为None。

当我使用如下的seasonal_decompose函数时:

seasonal_decompose(x, model = 'additive')

显示错误

ValueError: You must specify a freq or x must be a pandas object with a timeseries index with a freq not set to None.

需要帮助。

2 个答案:

答案 0 :(得分:2)

我也遇到了同样的问题,并通过指定频率参数来解决它。

seasonal_decompose(Ts, model = 'additive', freq=1)

我希望能有所帮助。 我发现https://www.analyticsvidhya.com/blog/2016/02/time-series-forecasting-codes-python/有帮助。

答案 1 :(得分:0)

Statsmodel需要分解序列的频率。

通常,该频率出现在索引的元数据中(无论是每天,每周,每月等等)。但是,您没有,这就是为什么它会向您显示该错误。

至少有两种方法可以解决此问题(让我们考虑名为df的{​​{1}})

•一个@ A.Abs提到,您将在{_ {1}}之类的季节性分解中传递x

•将某人的索引列的频率设置为freq,其中seasonal_decompose(x['Price'], freq=365)对应于一天(每天的频率)。

有关可以传递给freq关键字参数的频率字符串(或偏移别名)的更多信息,请检查this answerthis Pandas Documentation page