web-dev-qa-db-ja.com

AttributeError:モジュール 'pandas.compat'に属性 'iteritems'がありません

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' ```


2
kongkip
_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に2行あります。次のように変更します。

_ 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'_ inファイル_"/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

1
chrisckwong821

pandas.compatiteritems属性は ここに表示 として最近削除されたようです(これからのヒント ソース )。

つまり、現在のバージョンのpandasは、現在pandas-mlと互換性がありません。

GitHubの問題は、pandasバージョンをダウングレードすることをお勧めします。

# Installed using pip
pip install pandas==0.24.2

# Installed using conda
conda install pandas==0.24.2

Python REPL=で以下を実行して、pandasパッケージのバージョンが0.25.0より大きいかどうかをダブルチェックすることができます。

import pandas

print(pandas.__version__)
0
Eric Leung