首页 > 解决方案 > 填充熊猫中的特定行

问题描述

如果我有一个缺少值的数据框,有什么办法可以用特定的行参数向后填充 NaN 单元格?例如:

如果我有 X、Y、Z 列;有什么方法可以只用 Y 列为 1 的行填充“Z”NaN 列?作为参考,我只想填充显示“已填充”的单元格

数据

我已经知道如何使用某个列

列 = ['Z']

df.loc[:,cols] = df.loc[:,cols].bfill()

我只需要知道是否有办法只填充 Y 值为 1 的 Z 列

非常感谢您!

标签: pythonpandasdataframenandata-cleaning

解决方案


df['Y'] == 1您可以在赋值语句中添加布尔掩码df.loc,如下所示:

cols = ['Z']

df.loc[df['Y'] == 1, cols] = df.loc[:, cols].bfill()

结果:

print(df)

   X  Y    Z
0  1  1  2.0
1  1  2  2.0
2  1  3  NaN
3  2  1  4.0
4  3  1  3.0
5  3  1  3.0

推荐阅读