如何在python中使用KNN填充缺失值

rbl8hiat  于 2023-05-19  发布在  Python
关注(0)|答案(3)|浏览(191)

我试图在python中用KNN填充缺失值,所以我写了这段代码,但它不起作用。我得到这个错误“ValueError:无法将字符串转换为浮点数:“正常”,我该怎么办?

import pandas as pd
df = pd.read_csv(r'df.csv')
from sklearn.impute import KNNImputer
imputer = KNNImputer(n_neighbors=5)
df = pd.DataFrame(imputer.fit_transform(df),columns = df.columns)
inn6fuwd

inn6fuwd1#

通常要替换NaN值,我们使用sklearn.impute.SimpleImputer,它可以用您选择的值(样本的平均值、中位数或任何其他您想要的值)替换NaN值。

from sklearn.impute import SimpleImputer

imp = SimpleImputer(missing_values=np.nan, strategy='mean')
df = imp.fit_transform(df)
xmakbtuz

xmakbtuz2#

我不知道你的df看起来像,但我猜你可能不得不使用序数或标签编码器作为KNN输入器不工作的文本数据。
这里有一个指南给你:
https://medium.com/@kyawsawhtoon/a-guide-to-knn-imputation-95e2dc496e

jrcvhitl

jrcvhitl3#

KNN方法将计算向量之间的距离,因此如果您的数据是分类的,则应将其转换为数值。例如,如果字符串代表标签,则可以使用one-hot对标签进行编码。
还有另一个python包实现了KNN插补方法:impyte

相关问题