【问题标题】:If value in one column is null give another value in another column [duplicate]如果一列中的值为空,则在另一列中给出另一个值[重复]
【发布时间】:2020-09-14 13:07:54
【问题描述】:

我有以下数据框:

>>> name  age  grade  pass
0   Dana  23    95    yes
1   Emaa  24          yes
2   Don   25    99    yes
3 Daniela 24    85    yes
4   Fred  21          yes

我想创建一个条件,所以如果列等级为空,则列传递中的值将为否:

>>> name  age  grade  pass
0   Dana  23    95    yes
1   Emaa  24          no
2   Don   25    99    yes
3 Daniela 24    85    yes
4   Fred  21          no

我试过这种方式:

if df['grade'].isna():
    df['pass']='no'

但我得到错误:

ValueError:Series 的真值不明确。使用a.empty, a.bool()、a.item()、a.any() 或 a.all()。

我怎样才能得到预期的结果?我做错了什么?

【问题讨论】:

    标签: python pandas null


    【解决方案1】:

    你需要做np.where或mask

    df['pass'] = df['pass'].mask(df['grade'].isna(), 'no')
    

    【讨论】:

    • 感谢您分享此 Ben,您能否告诉我您是如何从样本中创建 df 的?我试图复制和使用read_clipboard,但它没有在两者之间占用空间,最后一个字段是NaN,任何指导都将在这里表示赞赏。
    • @RavinderSingh13 我没有创建数据框~,只是根据他的预期输出,解决方案应该很明显~
    猜你喜欢
    • 1970-01-01
    • 2020-04-19
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2014-10-05
    • 2017-12-07
    相关资源
    最近更新 更多