【发布时间】:2021-09-27 15:27:15
【问题描述】:
我已经问过一个类似的问题,但没有得到答复,所以我想我会采取不同的方法,看看是否有人知道如何做到这一点;
首先我会告诉你我的目标和我已经知道的:
我目前正在清理数据集,需要反向填充数据集以删除一些 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 有一个 X 值 2 和 3。那么,有没有办法填充在行下共享相同 X 值的单元格? (源和 Na 之间的 X 值需要相同,否则,什么都不会发生。)
谢谢!
【问题讨论】:
标签: python pandas dataframe data-cleaning