我正在尝试使用KNNImputer软件包将缺少的值插入到我的数据框中。 这是我的数据框
pd.DataDrame(numeric_data)
age bmi children charges 0 19 NaN 0.0 16884.9240 1 18 33.770 1.0 NaN 2 28 33.000 3.0 4449.4620 3 33 22.705 0.0 NaN
这是我通过imputer软件包并输出数据帧的时候。
imputer = KNNImputer(n_neighbors=2, weights="uniform")
impute_data = pd.DataFrame(imputer.fit_transform(numeric_data))
这给出了:
0 1 2 3 0 19.0 34.0850 0.0 16884.924000 1 18.0 33.7700 1.0 6309.517125 2 28.0 33.0000 3.0 4449.462000 3 33.0 22.7050 0.0 4610.464925
如何在不丢失列名的情况下执行相同的操作?我可以将列名称存储在其他位置并稍后追加,还是可以在列名称受到影响的情况下进行插补。
我尝试排除该列,但出现以下错误:
ValueError:无法将字符串转换为float:“ age”
答案 0 :(得分:0)
这应该给您想要的结果:-
imputer = KNNImputer(n_neighbors=2, weights="uniform")
impute_data = pd.DataFrame(imputer.fit_transform(numeric_data), columns=numeric_data.columns)