【问题标题】:Filling specific rows in pandas填充熊猫中的特定行
【发布时间】:2021-09-26 15:58:22
【问题描述】:

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

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

Data

我已经知道如何使用

cols = ['Z']

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

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

非常感谢您!

【问题讨论】:

    标签: python pandas dataframe nan data-cleaning


    【解决方案1】:

    您可以在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
    

    【讨论】:

    • 非常感谢!
    • @TriggerHappy 很高兴该解决方案适合您。记得点击左侧的✓接受答案(见How to accept SO answers
    • 抱歉,还是新的,我点击了复选标记。
    • 嗨,@SeaBean 我发布了另一个与此相关的问题,只是想知道您是否可以看一下,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 2017-08-04
    • 2020-08-31
    • 2018-06-20
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多