如果包含条件为true,如何单独返回一个值?
searchfor = ['dormant', 'open']]
flag_one = []
flag_one = data['Status'].str.contains('|'.join(searchfor), na=False)
现在,如果找到,它将返回“ True”,如果找不到,则返回“ False”。如何为“ True”和“ False”分配一个(数值)值?
答案 0 :(得分:3)
使用map
data['Status'].str.contains('|'.join(searchfor), na=False).map({True:111,False:222})
答案 1 :(得分:0)
我想这是你想要的
if data['Status'].str.contains('|'.join(searchfor), na=False):
flag_one = 1.0
else:
flag_one = -1.0
答案 2 :(得分:0)
在评估您的状况之后,只需重新分配flag_one
:
if flag_one:
flag_one = 3 # or any value you want for True
else:
flag_one = 34 # or any value you want for False
或者您可以进入contains
函数的源并进行更改,但我不建议这样做。
答案 3 :(得分:0)
使用numpy.where
:
searchfor = ['dormant', 'open']
x = 10
y = 20
data['new_column'] = numpy.where(data['Status'].isin(searchfor),x,y)
new_column
在处于休眠或打开状态时将包含10,否则将包含20。