Кажется, вы хотите точное совпадение элементов в Countries_List
в столбце Countey/ Sub-County
. Вы можете использовать
df2 = df1[df1['County/ Sub-County'].str.contains(r'^(?:{})$'.format('|'.join(Counties_List)))]
df2 = df1[df1['County/ Sub-County'].str.contains(rf'^(?:{"|".join(Counties_List)})$')] # Python 3.7+
Добавить (?i)
перед ^
, чтобы включить сопоставление без учета регистра.
Или, если вам нужно фиксированное сравнение строк, просто используйте isin
:
df2 = df1[df1['County/ Sub-County'].isin(Counties_List)]
Регулярное выражение, полученное из списка Counties_List = ['MOMBASA' ,'KWALE' ,'LAMU']
, будет выглядеть как ^(?:MOMBASA|KWALE|LAMU)$
. Группа без захвата, (?:...)
, будет следить за тем, чтобы якоря применялись ко всем альтернативам в группе.
См. Демонстрационную версию regex .