我有以下数据帧:
>>> 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
我想创建一个条件,这样如果列等级为null,则列传递中的值将为no:
>>> 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:序列的真值不明确。使用a.empty,a.bool((、a.item((、.any((或.all((。
如何获得预期结果?我做错了什么?
您需要执行np.where
或mask
df['pass'] = df['pass'].mask(df['grade'].isna(), 'no')