python中二元变量如何用KNN法补缺值?

How to fill missing value with KNN method for binary variables in python?

我有一个包含许多数字变量的数据集。我想用KNN方法来填补缺失值。以下代码没有正确填写缺失值,因为部分填写的值超出了范围。例如我有二进制变量,但它用一个浮点数填充它们。

正如您在下表中看到的,我得到 0.66 而不是 1。

请告知代码错误的原因。

 df = pd.read_csv('sample.csv')
   
    from sklearn.impute import KNNImputer
    imputer = KNNImputer(n_neighbors=3)
    df = pd.DataFrame(imputer.fit_transform(df),columns = df.columns)

数据集:

Column 1 Column 2
5 1
NAN 0
NAN NAN
1 1

结果:

Column 1 Column 2
5 1
3 0
3 0.66
1 1

第 2 列基本上包含两个值(0 和 1)。它不是数值特征,它是分类特征因此您可以使用模式来填充第 2 列中的缺失值