python - SimpleImputer ValueError
问题描述
我正在尝试用平均值替换 NaN,但是当我执行 fit 方法时出现此错误:
ValueError:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值。
这是我的代码:
from sklearn.impute import SimpleImputer
imp = SimpleImputer(missing_values = "NaN", strategy = "mean")
imp = imp.fit(df_missing.iloc[:, 1:4])
在将其标记为转发之前,我知道我也可以导入 numpy 并使用 np.nan 而不是“NaN”,但是没有办法解决它并坚持使用 pandas 和 SimpleImputer 吗?我正在学习在线课程,我想尽可能地坚持下去;不幸的是,它显然已经过时了,例如,它仍在运行
from sklearn.preprocessing import Imputer
解决方案
我不确定我是否清楚地理解了您的问题,但我假设您拥有(对象类型)而不是pd.NA or np.nan
您想要估算的列。"NaN"
如果是这种情况,有一种方法可以解决它:
df_missing.iloc[:, 1:4] = df_missing.iloc[:, 1:4].replace({"NaN": np.nan})
通过这样做,首先你替换"NaN"
为np.nan
,然后你可以使用 SimpleImputer:
imp = SimpleImputer(strategy = "mean")
imp = imp.fit(df_missing.iloc[:, 1:4])
我希望我正确理解了您的问题,并且此解决方案可以帮助您!
推荐阅读
- android - 如何通过 WP Rest Api 获取特定帖子的详细信息?
- android - Jetpack Compose 在 TextField 末尾设置光标
- oracle - oracle在脚本中删除一段时间的数据
- symfony - Symfony 使用多个实体重置密码
- python - Python - 在数据框中绘制两列的密度曲线
- ios - 如何删除在 Flutter 中安装的不需要的 Pod
- android - 清单中缺少 android:name 引用的条目会导致异常吗?
- r - 生成markdown和r代码的函数?
- kubernetes-helm - 在 helmsman 中为未设置的环境变量使用默认值
- javascript - React JSX 将最小日期时间添加到 datetime-local 输入