1
df['containName'] = 0
for i in range (df2.shape[0]):
    df.loc[df['string'].str.contains(df2['name'][i],case=False), "containName"]=1

I am using the above code, but it takes a lot of time (my df contain millions of rows). Any vectorized fast solution?

John Doe
  • 169
  • 1
  • 8

1 Answers1

1

You can using

df['containName']=df['string'].str.contains('|'.join(df2['name']),case=False)
BENY
  • 317,841
  • 20
  • 164
  • 234