Solução escalável para str.contains com lista de strings em pandas
Estou analisando um dataframe de pandasdf1
contendo linhas de objetos de sequência. Eu tenho uma lista de referência de palavras-chave e preciso excluir todas as linhas dedf1
contendo qualquer palavra da lista de referência.
Atualmente, eu faço assim:
reference_list: ["words", "to", "remove"]
df1 = df1[~df1[0].str.contains(r"words")]
df1 = df1[~df1[0].str.contains(r"to")]
df1 = df1[~df1[0].str.contains(r"remove")]
O que não é escalável para milhares de palavras. No entanto, quando eu faço:
df1 = df1[~df1[0].str.contains(reference_word for reference_word in reference_list)]
Eu produzo o erroo primeiro argumento deve ser sequência ou padrão compilado.
Segueesta solução, tentei:
reference_list: "words|to|remove"
df1 = df1[~df1[0].str.contains(reference_list)]
O que não gera uma exceção, mas não analisa todas as palavras eather.
Como usar efetivamente str.contains com uma lista de palavras?