python statsmodel Seasonal_decompose错误与“未调整大小的对象的len()”

时间:2018-08-06 00:36:13

标签: python-3.x pandas time-series statsmodels

我有一个包含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

这让我发疯,无法找到解决方案。上师有什么想法吗?

1 个答案:

答案 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中进行了测试。