我已经问过一个类似的问题,但没有得到答复,所以我想我会采取不同的方法,看看是否有人知道如何做到这一点;
首先我会告诉你我的目标和我已经知道的:
我目前正在清理数据集,需要反向填充数据集以删除一些NaN
值。
从下面的图片
我想向后填充相同 X 列值的 Na 列,并用行值为 1 的 Y 值填充 Na 单元格
这张图片显示了我想要的结果
我已经知道我可以使用
df.loc[df['Y'] == 1] = df.loc[:,].bfill(limit=1)
使其仅填充与 Y 值行 1 匹配的单元格(因此未填充底部的 Na 单元格)。
这是我的问题:使用上面的代码,它填充了中间的 Na,因为左侧的 Y 值为 1,这对于顶部单元格来说很好,因为源单元格和 Na 单元格的 X 值都为 1,尽管对于中间 Na 有 2 和 3 的 X 值。那么,有没有办法填充行下方共享相同 X 值的单元格?(源和 Na 之间的 X 值必须相同,否则,什么都不会发生。)
谢谢!