如果大熊猫包含条件为真,如何返回值(数字)?

时间:2018-10-12 14:08:18

标签: python pandas contains

如果包含条件为true,如何单独返回一个值?

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

现在,如果找到,它将返回“ True”,如果找不到,则返回“ False”。如何为“ True”和“ False”分配一个(数值)值?

4 个答案:

答案 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。