python statsmodels.tsa.seasonal 中的值错误
Posted
技术标签:
【中文标题】python statsmodels.tsa.seasonal 中的值错误【英文标题】:value error in python statsmodels.tsa.seasonal 【发布时间】:2017-04-09 05:20:46 【问题描述】:我有这个带有日期时间索引的数据框:
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
问题出在哪里?
【问题讨论】:
【参考方案1】:经过一番搜索,我发现 [这里][1] 我必须将 values
添加到 ts_log.price
decomposition = seasonal_decompose(ts_log.price.values, freq=30)
编辑关于 cmets。只需添加freq=30
就足够了!
【讨论】:
我遇到了类似的错误,但根据错误消息,我猜想添加 freq 参数可以解决问题。 你不是通过添加values
来修复它,而是通过添加freq=30
来修复它
“freq”到底在做什么?【参考方案2】:
您可以通过以下方式避免此错误:
ts_log = ts_log.asfreq('d')
这可能会产生一些缺失值:
ts_log = ts_log.fillna(method='bfill').fillna(method='ffill')
【讨论】:
【参考方案3】:以下已解决错误:
decomposition = seasonal_decompose(log_county_data , period = 30)
【讨论】:
以上是关于python statsmodels.tsa.seasonal 中的值错误的主要内容,如果未能解决你的问题,请参考以下文章