如何使用估算 class 将值替换为上一行中的值?

How can I use an imputing class to replace a value with the one on the row above?

我有以下数据框:

|1|2|3|
------
|4|-999|6|
------
|7|8|9|

我想用同一列上一行的值替换唯一的 -999 值。在这种情况下,值为 2,数据框如下所示:

|1|2|3|
-
|4|2|6|
-
|7|8|9|
-

我可以使用迭代结构来做到这一点,但我认为其中一个 classes 更好。我的第一选择是 KNNImputer,但是,虽然它说它使用 k-最近邻 source 的值,但我不知道它是否可以从 中获取值邻居。

那么,我该如何解决这个问题呢? imputer class 是个好主意吗?或者有更好的吗?

我建议将值 (-999) 设置为 np.nan,然后使用 fillna() method='ffill'。它将最后有效值传播到 NA 值。

请注意,如果每列中的第一个元素是 np.nan,则它不会被填充(因为它之前没有要传播的值)