无法从 pandas_ml 从 'sklearn.preprocessing' 导入名称 'Imputer'

Cannot import name 'Imputer' from 'sklearn.preprocessing' from pandas_ml

我正在为我的主人做一个项目,我试图获得一些关于我的计算的统计数据。我找到了一个非常酷的工具来执行此操作,称为 panda_ml,但是当我将它导入到 jupyter 上的单元格中时,如下所示:

from pandas_ml import *

它给我这个输出错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-118-93009f7254d4> in <module>
      3 from sklearn import *
      4 from matplotlib.colors import LogNorm
----> 5 from pandas_ml import *
      6 import math
      7 

~/anaconda3/envs/Lab1_B/lib/python3.7/site-packages/pandas_ml/__init__.py in <module>
      1 #!/usr/bin/env python
      2 
----> 3 from pandas_ml.core import ModelFrame, ModelSeries       # noqa
      4 from pandas_ml.tools import info                         # noqa
      5 from pandas_ml.version import version as __version__     # noqa

~/anaconda3/envs/Lab1_B/lib/python3.7/site-packages/pandas_ml/core/__init__.py in <module>
      1 #!/usr/bin/env python
      2 
----> 3 from pandas_ml.core.frame import ModelFrame       # noqa
      4 from pandas_ml.core.series import ModelSeries     # noqa

~/anaconda3/envs/Lab1_B/lib/python3.7/site-packages/pandas_ml/core/frame.py in <module>
      8 
      9 import pandas_ml.imbaccessors as imbaccessors
---> 10 import pandas_ml.skaccessors as skaccessors
     11 import pandas_ml.smaccessors as smaccessors
     12 import pandas_ml.snsaccessors as snsaccessors

~/anaconda3/envs/Lab1_B/lib/python3.7/site-packages/pandas_ml/skaccessors/__init__.py in <module>
     17 from pandas_ml.skaccessors.neighbors import NeighborsMethods                      # noqa
     18 from pandas_ml.skaccessors.pipeline import PipelineMethods                        # noqa
---> 19 from pandas_ml.skaccessors.preprocessing import PreprocessingMethods              # noqa
     20 from pandas_ml.skaccessors.svm import SVMMethods                                  # noqa

~/anaconda3/envs/Lab1_B/lib/python3.7/site-packages/pandas_ml/skaccessors/preprocessing.py in <module>
     11     _keep_col_classes = [pp.Binarizer,
     12                          pp.FunctionTransformer,
---> 13                          pp.Imputer,
     14                          pp.KernelCenterer,
     15                          pp.LabelEncoder,

AttributeError: module 'sklearn.preprocessing' has no attribute 'Imputer'

我正在使用 Conda,我有自己的环境和所有软件包,我尝试安装旧版本的 sklearn 和 pandas_ml 但它没有解决问题。我四处寻找,但似乎没有人遇到过这个问题......你有什么建议吗?

您必须正确卸载,降级才行。

pip uninstall -y scikit-learn
pip uninstall -y pandas
pip uninstall -y pandas_ml

pip install scikit-learn==0.21.1
pip install pandas==0.24.2
pip install pandas_ml

然后导入

from pandas_ml import *

测试于 Python 3.8.2

我最近安装了 scikit-learn 版本 0.22.1 并且遇到了类似的问题。然后我在 Python 3.7.2 下尝试了你的解决方案,维护了 Pandas v0.25.1Pandas ML v0.6.1 的版本,它工作得很好!我想知道什么时候可以安全地转向 scikit-learn

的更新版本
from sklearn.impute import SimpleImputer
imp = SimpleImputer(missing_values=np.nan, copy=False, strategy="mean", )

不再需要轴值