AttributeError: 'RangeIndex' object has no attribute 'inferred_freq'
AttributeError: 'RangeIndex' object has no attribute 'inferred_freq'
我正尝试在 python 3.x 中进行预测。所以我写了下面的代码
from statsmodels.tsa.seasonal import seasonal_decompose
decomposition = seasonal_decompose(ts_log)
trend = decomposition.trend
seasonal = decomposition.seasonal
residual = decomposition.resid
但我收到错误消息
AttributeError: 'RangeIndex' object has no attribute 'inferred_freq'
你能帮我解决这个问题吗
您需要确保您的熊猫系列对象 ts_log
具有推断频率的 DateTime 索引。
例如:
ts_log.index
>>> DatetimeIndex(['2014-01-01', ... '2017-12-31'],
dtype='datetime64[ns]', name='Date', length=1461, freq='D')
注意到有一个属性 freq='D'
,这意味着 Pandas 推断 Pandas 系列是每日索引的(D=每日)。
现在要实现这一点,我假设您的系列有一个列调用 'Date'。这是执行此操作的代码:
# Convert your daily column from just string to DateTime (skip if already done)
ts_log['Date'] = pd.to_datetime(ts_log['Date'])
# Set the column 'Date' as index (skip if already done)
ts_log = ts_log.set_index('Date')
# Specify datetime frequency
ts_log = ts_log.asfreq('D')
除每日以外的频率,请参考此处:https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases
对于 statsmodel==0.10.1
并且 ts_log
不是数据框或没有日期时间索引的数据框,请使用以下内容
decomposition = seasonal_decompose(ts_log, freq=1)
我正尝试在 python 3.x 中进行预测。所以我写了下面的代码
from statsmodels.tsa.seasonal import seasonal_decompose
decomposition = seasonal_decompose(ts_log)
trend = decomposition.trend
seasonal = decomposition.seasonal
residual = decomposition.resid
但我收到错误消息
AttributeError: 'RangeIndex' object has no attribute 'inferred_freq'
你能帮我解决这个问题吗
您需要确保您的熊猫系列对象 ts_log
具有推断频率的 DateTime 索引。
例如:
ts_log.index
>>> DatetimeIndex(['2014-01-01', ... '2017-12-31'],
dtype='datetime64[ns]', name='Date', length=1461, freq='D')
注意到有一个属性 freq='D'
,这意味着 Pandas 推断 Pandas 系列是每日索引的(D=每日)。
现在要实现这一点,我假设您的系列有一个列调用 'Date'。这是执行此操作的代码:
# Convert your daily column from just string to DateTime (skip if already done)
ts_log['Date'] = pd.to_datetime(ts_log['Date'])
# Set the column 'Date' as index (skip if already done)
ts_log = ts_log.set_index('Date')
# Specify datetime frequency
ts_log = ts_log.asfreq('D')
除每日以外的频率,请参考此处:https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases
对于 statsmodel==0.10.1
并且 ts_log
不是数据框或没有日期时间索引的数据框,请使用以下内容
decomposition = seasonal_decompose(ts_log, freq=1)