【问题标题】:Python Statsmodels x13_arima_analysis : AttributeError: 'dict' object has no attribute 'iteritems'Python Statsmodels x13_arima_analysis:AttributeError:'dict'对象没有属性'iteritems'
【发布时间】:2016-08-25 00:39:20
【问题描述】:

第 1 步:我的示例数据

import pandas as pd
from pandas import Timestamp

s = pd.Series(
    {Timestamp('2013-03-01 00:00:00'): 838.2,
 Timestamp('2013-04-01 00:00:00'): 865.17,
 Timestamp('2013-05-01 00:00:00'): 763.0,
 Timestamp('2013-06-01 00:00:00'): 802.99,
 Timestamp('2013-07-01 00:00:00'): 875.56,
 Timestamp('2013-08-01 00:00:00'): 754.4,
 Timestamp('2013-09-01 00:00:00'): 617.48,
 Timestamp('2013-10-01 00:00:00'): 994.75,
 Timestamp('2013-11-01 00:00:00'): 860.86,
 Timestamp('2013-12-01 00:00:00'): 786.66,
 Timestamp('2014-01-01 00:00:00'): 908.48,
 Timestamp('2014-02-01 00:00:00'): 980.88,
 Timestamp('2014-03-01 00:00:00'): 1453.73,
 Timestamp('2014-04-01 00:00:00'): 1473.33,
 Timestamp('2014-05-01 00:00:00'): 1480.44,
 Timestamp('2014-06-01 00:00:00'): 1433.91,
 Timestamp('2014-07-01 00:00:00'): 1386.58,
 Timestamp('2014-08-01 00:00:00'): 1437.35,
 Timestamp('2014-09-01 00:00:00'): 1207.07,
 Timestamp('2014-10-01 00:00:00'): 973.3,
 Timestamp('2014-11-01 00:00:00'): 962.18,
 Timestamp('2014-12-01 00:00:00'): 717.69,
 Timestamp('2015-01-01 00:00:00'): 873.06,
 Timestamp('2015-02-01 00:00:00'): 881.65,
 Timestamp('2015-03-01 00:00:00'): 1252.92,
 Timestamp('2015-04-01 00:00:00'): 866.94,
 Timestamp('2015-05-01 00:00:00'): 1498.05,
 Timestamp('2015-06-01 00:00:00'): 1282.31,
 Timestamp('2015-07-01 00:00:00'): 1411.33,
 Timestamp('2015-08-01 00:00:00'): 1379.05,
 Timestamp('2015-09-01 00:00:00'): 1334.52,
 Timestamp('2015-10-01 00:00:00'): 1231.86,
 Timestamp('2015-11-01 00:00:00'): 1088.14,
 Timestamp('2015-12-01 00:00:00'): 967.35,
 Timestamp('2016-01-01 00:00:00'): 1266.37,
 Timestamp('2016-02-01 00:00:00'): 1278.79,
 Timestamp('2016-03-01 00:00:00'): 1497.8,
 Timestamp('2016-04-01 00:00:00'): 1352.27},
    name='Cost')

第 2 步:我将X-13ARIMA-SEATS Seasonal Adjustment Program 下载到 Windows 操作系统的下载文件夹中

第 3 步:在 Python 的 IDLE IDE 中,我将当前路径更改为该程序所在的位置:

import os
os.chdir(r'C:\Users\owner\Downloads\x13asall_V1.1_B26\x13as')

第四步:我导入statsmodels并尝试运行x13_arima_analysis如下:

import statsmodels.api as sm
sm.tsa.x13_arima_analysis(s)

收到错误:

Traceback (most recent call last):
  File "<pyshell#104>", line 1, in <module>
    sm.tsa.x13_arima_analysis(s)
  File "C:\Python34\lib\site-packages\statsmodels-0.6.1-py3.4-win-amd64.egg\statsmodels\tsa\x13.py", line 417, in x13_arima_analysis
    spec_obj = pandas_to_series_spec(endog)
  File "C:\Python34\lib\site-packages\statsmodels-0.6.1-py3.4-win-amd64.egg\statsmodels\tsa\x13.py", line 310, in pandas_to_series_spec
    stperiod))
  File "C:\Python34\lib\site-packages\statsmodels-0.6.1-py3.4-win-amd64.egg\statsmodels\tsa\x13.py", line 271, in __init__
    title=title, name=series_name,
  File "C:\Python34\lib\site-packages\statsmodels-0.6.1-py3.4-win-amd64.egg\statsmodels\tsa\x13.py", line 218, in set_options
    for key, value in kwargs.iteritems():
AttributeError: 'dict' object has no attribute 'iteritems'

请注意,我安装了 unofficial binaries 的 statsmodels(因为无法在我的 Windows 机器上安装),所以我认为我无法更改实际来源,但我确实看到问题是 here on this line

这是我做错了还是 statsmodels 中的错误?

我有什么版本的 statsmodels? 0.6.1

>>> sm.__spec__
ModuleSpec(name='statsmodels.api', loader=<_frozen_importlib.SourceFileLoader object at 0x0000000007193470>, origin='C:\\Python34\\lib\\site-packages\\statsmodels-0.6.1-py3.4-win-amd64.egg\\statsmodels\\api.py')

【问题讨论】:

  • 某些东西似乎关闭了,通常 dicts 有 iteritems 运算符,由 print dict.iteritem 检查:'&lt;method 'iteritems' of 'dict' objects&gt;

标签: python time-series statsmodels


【解决方案1】:

不知道我是否应该关闭这个问题,或者将其保留以供其他任何努力让x13_arima_analysis 工作的人参考。总之,我通过更改几行来让它工作......但最后,我建议先去Github,并将位于您机器上C:\Python34\Lib\site-packages\statsmodels-0.6.1-py3.4-win-amd64.egg\statsmodels‌​\tsa中的x13.py文件替换为latest Github code看看它是否为您解决了问题。它为我解决了它。

实际工作示例:

import pandas as pd
from pandas import Timestamp
import os
import matplotlib.pyplot as plt
import statsmodels.api as sm

PATH =r'C:\Users\owner\Downloads\x13asall_V1.1_B26\x13as'

os.chdir(PATH)

s = pd.Series(
    {Timestamp('2013-03-01 00:00:00'): 838.2,
 Timestamp('2013-04-01 00:00:00'): 865.17,
 Timestamp('2013-05-01 00:00:00'): 763.0,
 Timestamp('2013-06-01 00:00:00'): 802.99,
 Timestamp('2013-07-01 00:00:00'): 875.56,
 Timestamp('2013-08-01 00:00:00'): 754.4,
 Timestamp('2013-09-01 00:00:00'): 617.48,
 Timestamp('2013-10-01 00:00:00'): 994.75,
 Timestamp('2013-11-01 00:00:00'): 860.86,
 Timestamp('2013-12-01 00:00:00'): 786.66,
 Timestamp('2014-01-01 00:00:00'): 908.48,
 Timestamp('2014-02-01 00:00:00'): 980.88,
 Timestamp('2014-03-01 00:00:00'): 1453.73,
 Timestamp('2014-04-01 00:00:00'): 1473.33,
 Timestamp('2014-05-01 00:00:00'): 1480.44,
 Timestamp('2014-06-01 00:00:00'): 1433.91,
 Timestamp('2014-07-01 00:00:00'): 1386.58,
 Timestamp('2014-08-01 00:00:00'): 1437.35,
 Timestamp('2014-09-01 00:00:00'): 1207.07,
 Timestamp('2014-10-01 00:00:00'): 973.3,
 Timestamp('2014-11-01 00:00:00'): 962.18,
 Timestamp('2014-12-01 00:00:00'): 717.69,
 Timestamp('2015-01-01 00:00:00'): 873.06,
 Timestamp('2015-02-01 00:00:00'): 881.65,
 Timestamp('2015-03-01 00:00:00'): 1252.92,
 Timestamp('2015-04-01 00:00:00'): 866.94,
 Timestamp('2015-05-01 00:00:00'): 1498.05,
 Timestamp('2015-06-01 00:00:00'): 1282.31,
 Timestamp('2015-07-01 00:00:00'): 1411.33,
 Timestamp('2015-08-01 00:00:00'): 1379.05,
 Timestamp('2015-09-01 00:00:00'): 1334.52,
 Timestamp('2015-10-01 00:00:00'): 1231.86,
 Timestamp('2015-11-01 00:00:00'): 1088.14,
 Timestamp('2015-12-01 00:00:00'): 967.35,
 Timestamp('2016-01-01 00:00:00'): 1266.37,
 Timestamp('2016-02-01 00:00:00'): 1278.79,
 Timestamp('2016-03-01 00:00:00'): 1497.8,
 Timestamp('2016-04-01 00:00:00'): 1352.27},
    name='Cost')


res = sm.tsa.x13_arima_analysis(s)
res.plot()
plt.show()

【讨论】:

  • 嗨,我正在为 python 使用 Anaconda 前端。你能告诉我如何为我的案例实现 x13。在 Windows 上
猜你喜欢
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
  • 2012-10-30
  • 2016-09-23
  • 2020-09-11
  • 1970-01-01
  • 2018-06-22
  • 2018-10-13
相关资源
最近更新 更多