我有一个如下所示的数据框。如果sale_done = TRUE
然后通过TRUE
,则返回FALSE
id,cust_name,sale_done
1,kevin,TRUE
2,scott,TRUE
3,mark,FALSE
我尝试了以下操作,但获得了ValueError: The truth value of a Series is ambiguous.
df['check'] = np.where((df['sale_done'] =='TRUE','TRUE','FALSE'))
答案 0 :(得分:3)
删除嵌套的()
:
df['check'] = np.where(df['sale_done'] =='TRUE','TRUE','FALSE')
如果True
是布尔值:
df['check'] = np.where(df['sale_done'],'TRUE','FALSE')
如果输出中需要布尔掩码-True
和False
:
df['check'] = df['sale_done'] =='TRUE'
答案 1 :(得分:3)
使用(如果TRUE
是字符串):
df['check']=df.sale_done.eq('TRUE')
这将根据需要自动返回布尔值。
如果df['sale_done']
已经为布尔值,它将与列check
相同,因此您实际上不需要它。