如果 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})
如果包含条件为真,我如何单独 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})