我的数据框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
答案 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