Python ImportError: cannot import name ‘Imputer‘ from ‘sklearn.preprocessing‘

Python 导入 sklearn 模块错误

我是在做《Python大数据处理》书籍中的例题时导入 sklearn 遇到的错误

这个错误的原因是 sklearn 模块导入的问题,是由于 Python 版本与 sklearn 模块版本不对等的问题

首先是要安装 sklearn 模块

不是完全标准的pip安装,指令如下

pip install -U scikit-learn

在安装的时候可能会在cmd界面遇到如下警告:

WARNING: You are using pip version 21.0.1; however, version 21.1.1 is available.
警告:您使用的是pip版本21.0.1;但是,版本21.1.1可用。 
之后再Python根目录下使用如下指令,更新pip版本以防一些模块更新与Python版本的冲突
python.exe -m pip install --upgrade pip
见到此语句即为安装成功 Successfully installed pip-21.x.x (帖子目前为21.1.1)

接下来是解决核心问题

错误语句:from sklearn.preprocessing import Imputer
ImportError: cannot import name 'Imputer' from 'sklearn.preprocessing' Path
错误原因为 导入模块失败 from sklearn.preprocessing import Imputer

将导入模块的语句改为

from sklearn.impute import SimpleImputer as Imputer

这里就解决了 ImportError 的问题,但是仍然有关于 sklearn 模块的一些语法错误,我将部分我所遇到的问题及解决方法也写在底下

错误代码:imp = Imputer(missing_values='NaN',strategy='mean')
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
ValueError:输入包含NaN、无穷大或对dtype('float64')太大的值。

这里的问题是missing_values不能为NaN了,所以更改为 numpy.nan。

imp=Imputer(missing_values=np.nan, strategy=‘mean’)

之后遇到了transform的错误

错误代码:FData = imp.transform()
TypeError:transform() missing 1 required positional argument: 'X'
TypeError:transform() 缺少1个必需的位置参数:“X”

transform()缺少了必要的参数,只需要将自身改变即可

FData = imp.transform(FData)

示例代码
PyCharm

import pandas as pd
import numpy as np 
from sklearn.impute import SimpleImputer as Imputer

data=pd.read_excel("missing.xlsx")
c=np.array([[1,2,3,4],[4,5,6,np.nan],[5,6,7,8],[9,4,np.nan,8]])
C=pd.DataFrame(c)

fC=C
imp=Imputer(missing_values=np.nan, strategy='mean')
imp.fit(fC)
fC=imp.transform(fC)

imp=Imputer(missing_values=np.nan, strategy='median')
fc=c
imp.fit(fc)
fc=imp.transform(fc)

fD=data[['a','c']]
imp=Imputer(missing_values=np.nan, strategy='most_frequent')
imp.fit(fD)
fD=imp.transform(fD)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W.Lionel.Esaka

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值