我有2个数据框
df1有一个字符串列表
print(df1)
Strings
0 AppleSauce
1 SauceMangoSauce
2 StrawberrySauce
df2列出了水果
print(df2)
Sub_Strings
0 Banana
1 Mango
我要标记df1中包含df2子字符串之一的所有字符串
print(df1)
Strings Flag
0 AppleSauce False
1 SauceMangoSauce True
2 StrawberrySauce False
我不确定下面的代码正确的语法是什么,我知道这是不正确的
df1.loc[df1['Strings'].contains(df2['Sub_Strings']), 'Flag'] = True
感谢您的帮助
答案 0 :(得分:1)
您可以这样做:
# create a regex
query = '|'.join(df2['Sub_S'].tolist())
# find matches
df1['Flag'] = df1['Strings'].str.contains(query)
print(df1)
Strings Flag
0 AppleSauce False
1 SauceMangoSauce True
2 StrawberrySauce False