如果 pandas 包含条件为真,如何 return 一个值(数字)?

How to return a value (number) if pandas contains condition is true?

如果包含条件为真,我如何单独 return 一个值?

searchfor = ['dormant', 'open']]
flag_one = []
flag_one = data['Status'].str.contains('|'.join(searchfor), na=False)

现在 return 如果找到则为 "True",如果找不到则为 "False"。如何将(数字)值分配给 "True" 和 "False"?

我想这就是你想要的

if data['Status'].str.contains('|'.join(searchfor), na=False):
   flag_one = 1.0
else:
   flag_one = -1.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 函数的源代码并更改它,但我不推荐它。

使用numpy.where:

searchfor = ['dormant', 'open']
x = 10
y = 20
data['new_column'] = numpy.where(data['Status'].isin(searchfor),x,y)

new_column在status中发现dormant或open时会包含10,否则会包含20。

使用map

data['Status'].str.contains('|'.join(searchfor), na=False).map({True:111,False:222})