我试图用平均值替换NaNs,但是当我使用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",但难道没有办法绕过它,坚持熊猫和SimpleImputer吗?我正在学习一门在线课程,我想尽可能地坚持下去;不幸的是,它显然已经过时了,例如,它仍然在运行。
from sklearn.preprocessing import Imputer发布于 2021-01-27 17:38:01
我不确定我是否清楚地理解了您的问题,但是我假设在您想要计算的列中不是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])我希望我正确地理解了你的问题,这个解决方案对你有帮助!
发布于 2021-01-25 19:08:00
您可以设置imp对象;
imp = SimpleImputer(missing_values = np.nan, strategy = "mean")
https://stackoverflow.com/questions/65890860
复制相似问题