插补熊猫时忽略列名称

时间:2020-06-09 13:46:13

标签: python pandas dataframe imputation

我正在尝试使用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”

1 个答案:

答案 0 :(得分:0)

这应该给您想要的结果:-

imputer = KNNImputer(n_neighbors=2, weights="uniform")
impute_data = pd.DataFrame(imputer.fit_transform(numeric_data), columns=numeric_data.columns)