检查两个数据框之间的部分字符串匹配

时间:2020-08-07 21:20:34

标签: python pandas string dataframe substring

我有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

感谢您的帮助

1 个答案:

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