填充 pandas 中的特定行
Filling specific rows in pandas
如果我有一个包含缺失值的数据框,有什么方法可以向后填充具有特定行参数的 NaN 单元格?例如:
如果我有 X、Y、Z 列;有没有办法只用 Y 列为 1 的行填充 'Z' NaN 列?作为参考,我只想填充显示“已填充”的单元格
Data
我已经知道如何使用
获取特定列
列数 = ['Z']
df.loc[:,cols] = df.loc[:,cols].bfill()
我只需要知道是否有办法只填充 Y 值为 1 的 Z 列
在此先感谢您!
可以在df.loc
赋值语句中加入df['Y'] == 1
的布尔掩码,如下:
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
如果我有一个包含缺失值的数据框,有什么方法可以向后填充具有特定行参数的 NaN 单元格?例如:
如果我有 X、Y、Z 列;有没有办法只用 Y 列为 1 的行填充 'Z' NaN 列?作为参考,我只想填充显示“已填充”的单元格
Data
我已经知道如何使用
获取特定列列数 = ['Z']
df.loc[:,cols] = df.loc[:,cols].bfill()
我只需要知道是否有办法只填充 Y 值为 1 的 Z 列
在此先感谢您!
可以在df.loc
赋值语句中加入df['Y'] == 1
的布尔掩码,如下:
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