我有一个包含2列的数据框:日期和计数。而且我正在尝试使用statsmodel中的Season_decompose来可视化时间序列分析
df_counts_outlier_trim=df_counts_outlier[['date', 'count']]
df_counts_outlier_trim.set_index('date', inplace=True) # set yyyy-mm-dd as index
print (df_counts_outlier_trim.info())
返回
<class 'pandas.core.frame.DataFrame'>
Index: 179 entries, 2018-01-21 to 2018-07-18
Data columns (total 1 columns):
count 179 non-null int64
dtypes: int64(1)
memory usage: 2.8+ KB
print (df_counts_outlier_trim)
返回
count
date
2018-01-21 48
2018-01-22 304
2018-01-23 368
2018-01-24 528
2018-01-25 448
2018-01-26 304
2018-01-27 256
2018-01-28 272
2018-01-29 448
2018-01-30 480
2018-01-31 464
2018-02-01 448
2018-02-02 208
2018-02-03 288
2018-02-04 352
现在,我尝试使用statsmodels Season_decompose:
from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(df_counts_outlier_trim.count, model='additive', freq=1)
这是错误消息:
Traceback (most recent call last):
File "outliers.py", line 217, in <module>
result = seasonal_decompose(df_counts_outlier_trim.count, model='additive', freq=1)
File "/home/vagrant/miniconda3/envs/waypoint_benchmark/lib/python3.6/site-packages/statsmodels/tsa/seasonal.py", line 70, in seasonal_decompose
nobs = len(x)
TypeError: len() of unsized object
这让我发疯,无法找到解决方案。上师有什么想法吗?
答案 0 :(得分:1)
使用您提供的有限数据集,我可以对代码进行以下修改。
from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(df_counts_outlier_trim.count.values, model='additive', freq=1)
注意该行中的 values
。我已经在python 2.7中进行了测试。