熊猫-基于值过滤列

时间:2019-05-22 08:41:02

标签: pandas

我有一个如下所示的数据框。如果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'))

2 个答案:

答案 0 :(得分:3)

删除嵌套的()

df['check'] = np.where(df['sale_done'] =='TRUE','TRUE','FALSE')

如果True是布尔值:

df['check'] = np.where(df['sale_done'],'TRUE','FALSE')

如果输出中需要布尔掩码-TrueFalse

df['check'] = df['sale_done'] =='TRUE'

答案 1 :(得分:3)

使用(如果TRUE是字符串):

df['check']=df.sale_done.eq('TRUE')

这将根据需要自动返回布尔值。

如果df['sale_done']已经为布尔值,它将与列check相同,因此您实际上不需要它。