包含多个值之一

toc*_*eto 0 python loops contains

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

df  
x               
apple234  
pear231  
banana233445 
Run Code Online (Sandbox Code Playgroud)

如果row1 in df["x"]包含lst:then 1else 中的任何值0

最终数据应如下所示:

df  
x  y  
apple234  -- 1  
pear231 -- 1    
banana233445 - 0 
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

使用str.contains与正则表达式|的加入列表的所有值,最后投布尔面具0,1astype:

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
Run Code Online (Sandbox Code Playgroud)