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' ```
_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
_を削除するだけで十分です。
参照:
pandas.compat
のiteritems
属性は ここに表示 として最近削除されたようです(これからのヒント ソース )。
つまり、現在のバージョンの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__)