AttributeError:模块“ pandas.compat”没有属性“ iteritems”

时间:2019-10-14 08:04:26

标签: python pandas machine-learning pandas-ml

我正在尝试导入 pandas-ml ,但出现此导入错误。 可能是什么问题?

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-4-fd3c3c034481> in <module>
----> 1 import pandas_ml as pml

AttributeError: module 'pandas.compat' has no attribute 'iteritems' ```


3 个答案:

答案 0 :(得分:0)

iteritems的{​​{1}}属性似乎最近已被删除,为seen here(此source的提示)。

换句话说,您当前的pandas.compat版本与pandas当前不兼容。

GitHub问题建议您降级您的pandas-ml版本。

pandas

您可以在Python REPL中运行以下命令,仔细检查# Installed using pip pip install pandas==0.24.2 # Installed using conda conda install pandas==0.24.2 软件包的版本,以查看其是否大于pandas

0.25.0

答案 1 :(得分:0)

File "/usr/local/lib/python3.7/site-packages/pandas_ml/core/accessor.py", line 81, in _update_method_mapper
    for key, class_dict in compat.iteritems(cls._method_mapper):
AttributeError: module 'pandas.compat' has no attribute 'iteritems'

我对python3.7也有同样的错误。我通过将iteritems()更改为items()来解决了这个问题。

在@classmethod下的accessor.py上有两行,将它们更改为:

 for key, class_dict in cls._method_mapper.items():
'
'
'
      class_dict = {k: getattr(cls, m) for k, m in class_dict.items()}

对于我的版本, 我还遇到文件ImportError: cannot import name 'range' from 'pandas.compat'中的另一个导入错误"/usr/local/lib/python3.7/site-packages/pandas_ml/confusion_matrix/stats.py"。只需删除from pandas.compat import range即可。

参考:

https://github.com/pandas-dev/pandas/commit/e26e2dfe6e93922830fb5fb7868b87238b85911a#diff-21f71fbdb0d3dfa55dc948e2ddcddc92

答案 2 :(得分:0)

我有同样的问题。 我发现,pandas_ml与scikit-learn和pandas的当前版本不兼容。 因此,我编写了一个修复程序,并在github上发出了pull请求。 在https://github.com/AlfredoCubitos/pandas-mlhttps://github.com/pandas-ml/pandas-ml/pull/132这里看看。