Filtragem de pandas para várias substrings em série

Eu preciso filtrar linhas em umpandas dataframe para que uma coluna específica contenha pelo menos uma de uma lista de substrings fornecidas. As substrings podem ter caracteres incomuns / regex. A comparação não deve envolver regex e faz distinção entre maiúsculas e minúsculas.

Por exemplo:

lst = ['kdSj;af-!?', 'aBC+dsfa?\-', 'sdKaJg|dksaf-*']

Atualmente, aplico a máscara assim:

mask = np.logical_or.reduce([df[col].str.,contains(i, regex=False, case=False) for i in lst])
df = df[mask]

Meu quadro de dados é grande (~ 1 milhão de linhas) elst tem comprimento 100. Existe uma maneira mais eficiente? Por exemplo, se o primeiro item emlst for encontrado, não teremos que testar nenhuma sequência subsequente para essa linha.

questionAnswers(2)

yourAnswerToTheQuestion