包含多个值之一

时间:2018-02-27 16:38:35

标签: python loops contains

我的数据框df包含列x和列表lst =["apple","peach","pear"]

df  
x               
apple234  
pear231  
banana233445 

如果df["x"]中的row1包含lst中的任何值:则1其他0

最终数据应如下所示:

df  
x  y  
apple234  -- 1  
pear231 -- 1    
banana233445 - 0 

1 个答案:

答案 0 :(得分:5)

使用str.contains和正则表达式|连接列表的所有值,最后通过astype将强制转换布尔掩码加到0,1

lst =["apple","peach","pear"]

df['y'] = df['x'].str.contains('|'.join(lst)).astype(int)
print (df)
              x  y
0      apple234  1
1       pear231  1
2  banana233445  0