我正在尝试导入 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' ```
答案 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
即可。
参考:
答案 2 :(得分:0)
我有同样的问题。 我发现,pandas_ml与scikit-learn和pandas的当前版本不兼容。 因此,我编写了一个修复程序,并在github上发出了pull请求。 在https://github.com/AlfredoCubitos/pandas-ml或https://github.com/pandas-ml/pandas-ml/pull/132这里看看。