python statsmodels.tsa.seasonal 中的值错误

value error in python statsmodels.tsa.seasonal

我有这个带有日期时间索引的数据框:

ts_log:
date    price_per_unit
2013-04-04  12.762369
2013-04-05  12.777120
2013-04-06  12.773146
2013-04-07  12.780774
2013-04-08  12.786835

我有这段代码 decomposition

from statsmodels.tsa.seasonal import seasonal_decompose
decomposition = seasonal_decompose(ts_log)

trend = decomposition.trend
seasonal = decomposition.seasonal
residual = decomposition.resid

但在 decomposition = seasonal_decompose(ts_log) 行中 我收到这个错误:

ValueError: You must specify a freq or x must be a pandas object with a timeseries index

问题出在哪里?

经过一番搜索后,我发现 [here][1] 我必须将 values 添加到 ts_log.price

decomposition = seasonal_decompose(ts_log.price.values, freq=30)

编辑评论。只需添加 freq=30 就足够了!

您可以通过以下方式避免此错误:

ts_log = ts_log.asfreq('d')

这可能会产生一些缺失值:

ts_log = ts_log.fillna(method='bfill').fillna(method='ffill')

以下已解决错误:

decomposition = seasonal_decompose(log_county_data , period = 30)