title: In pandas, how to select phrases in a dataframe from word list or word set?
body: <p>In Python3 and pandas I have the dataframe:</p>
  
  <pre><code>df_projetos_api_final.info()                                                      
  &lt;class 'pandas.core.frame.DataFrame'&gt;                                                      
  Int64Index: 93631 entries, 1 to 93667                                                      
  Data columns (total 21 columns):                                                           
  AnoMateria                       93631 non-null object                                     
  CodigoMateria                    93631 non-null object                                     
  DescricaoIdentificacaoMateria    93631 non-null object                                     
  DescricaoSubtipoMateria          93631 non-null object                                     
  IndicadorTramitando              93631 non-null object                                     
  NomeCasaIdentificacaoMateria     93631 non-null object                                     
  NumeroMateria                    93631 non-null object                                     
  ApelidoMateria                   891 non-null object                                       
  DataApresentacao                 93631 non-null object                                     
  DataLeitura                      54213 non-null object                                     
  EmentaMateria                    93631 non-null object                                     
  ExplicacaoEmentaMateria          9461 non-null object                                      
  IndicadorComplementar            93631 non-null object                                     
  DescricaoNatureza                54352 non-null object                                     
  NomeAutor                        93100 non-null object                                     
  IndicadorOutrosAutores           93214 non-null object                                     
  CodigoParlamentar                49786 non-null object                                     
  NomeParlamentar                  49786 non-null object                                     
  NomeCompletoParlamentar          49786 non-null object                                     
  UfParlamentar                    45613 non-null object                                     
  DescricaoSituacao                78783 non-null object                                     
  dtypes: object(21)                                                                         
  memory usage: 8.2+ MB 
  </code></pre>
  
  <p>The column "EmentaMateria" has in each row a series of sentences. I plan to create a new dataframe from rows that contain any or several of these words (or group of words) in this column:  </p>
  
  <pre><code>str_choice = "MULHER|MULHERES|TRABALHO DOMESTICO|VIOLENCIA CONTRA A MULHER|VIOLENCIA DOMESTICA|VIOLENCIA DE GENERO|MARIA DA PENHA|ABORTO|ABORTAMENTO|INTERRUPCAO DE GRAVIDEZ|INTERRUPCAO DE GESTACAO|DIREITO REPRODUTIVO|DIREITOS REPRODUTIVOS|DIREITO A VIDA|CONCEPCAO|CONTRACEPCAO|CONTRACEPTIVO|MISOPROSTOL|MIFEPRISTONE|CYTOTEC|UTERO|GESTACAO|GRAVIDEZ|PARTO|VIOLENCIA OBSTETRICA|FETO|BEBE|CRIANCA|VIOLENCIA SEXUAL|FEMINICIDIO|MORTE DE MULHER|MORTE DE MULHERES|HOMICIDIO DE MULHER|HOMICIDIO DE MULHERES|ASSEDIO SEXUAL|ASSEDIO|ESTUPRO|VIOLENCIA SEXUAL|ABUSO SEXUAL|ESTUPRO DE VULNERAVEL|LICENCA MATERNIDADE|FEMININO|MULHER NEGRA|MULHERES NEGRAS|MULHERES QUILOMBOLAS|MULHERES INDIGENAS|NEGRAS|NEGRA|RACISMO|RACA|RACIAL|ABUSO SEXUAL|MATERNIDADE|MAE|AMAMENTACAO|SEXUALIDADE|SEXO|GENERO|FEMINISMO|MACHISMO|GUARDA DE FILHOS|GUARDA DOS FILHOS|IGUALDADE DE GENERO|IDENTIDADE DE GENERO|IDEOLOGIA DE GENERO|EDUCACAO SEXUAL|ESCOLA SEM PARTIDO|TRANSEXUAL|TRANSEXUALIDADE|MULHER TRANS|MULHERES TRANS|MUDANCA DE SEXO|READEQUACAO SEXUAL|EXPLORACAO SEXUAL|PROSTITUICAO|ORIENTACAO SEXUAL|HOMOSSEXUAL|HOMOSSEXUALIDADE|HOMOSSEXUALISMO|LESBICA|LESBICAS|DIREITO DOS HOMENS|EDUCACAO RELIGIOSA|DEUS|RELIGIAO|EDUCACAO DOMICILIAR|HOMESCHOOLING|CRECHE|EDUCACAO INFANTIL|CASAMENTO INFANTIL"  
  </code></pre>
  
  <p>So I did like this:</p>
  
  <pre><code>seleciona2 = df_projetos_api_final [df_projetos_api_final['EmentaMateria'].\
                                 str.contains(str_choice, na=False)]
  </code></pre>
  
  <p>The newly generated dataframe has collected multiple sentences that have one or more of these words. However, many lines do not have these words, as <br>
   "ENCAMINHA AO SENADO FEDERAL, UM ADENDO AS SUGESTOES DE EMENDAS A<br>
        PROPOSTA ORCAMENTARIA DO DISTRITO FEDERAL, REFERENTE A ALTERACAO DO<br>
        PROGRAMA DE TRABALHO DO FUNDEPE - FUNDO DE DESENVOLVIMENTO DO<br>
        DISTRITO FEDERAL, VISANDO A ACRESCENTAR MAIS CZ 3.453.977.000,00<br>
        (TRES BILHOES, QUATROCENTOS E CINQUENTA E TRES MILHOES, NOVECENTOS E<br>
        SETENTA E SETE MIL CRUZADOS) AO PROJETO DE EXECUCAO DE OBRAS E<br>
        EQUIPAMENTOS DO SISTEMA DE EDUCACAO E CULTURA."</p>
  
  <p>Please, is this because similar words are also being searched for in sentences? Or because many sentences have too much white space or line breaks between some words?</p>
  
  <p>Edit 7/12/2019</p>
  
  <p>Thanks so much all friends for your attention. After you wrote I went back to reviewing the database and again the suggested codes. I got the original database, with accents in Brazilian Portuguese. I think this is the original problem - I didn't know the original base had been changed</p>
  
  <p>I found that the database I was working on had gone through unidecode to remove accents from Portuguese. So I repeated the tests with a str_choice with accents and with the original database, and then it worked - I haven't checked all the lines yet, but all I've seen are correct so far</p>
  
  <p>So the new str_choice (I used the name search_list), I used was this:</p>
  
  <pre><code>df_projetos_api_final['EmentaMateria'] = df_projetos_api_final['EmentaMateria'].str.upper()
  search_list = ["MULHER", "MULHERES", "TRABALHO DOMÉSTICO", "VIOLÊNCIA CONTRA A MULHER", "VIOLÊNCIA DOMÉSTICA", "VIOLÊNCIA DE GÊNERO", "MARIA DA PENHA", "ABORTO", "ABORTAMENTO", "INTERRUPÇÃO DE GRAVIDEZ", "INTERRUPÇÃO DE GESTAÇÃO", "DIREITO REPRODUTIVO", "DIREITOS REPRODUTIVOS", "DIREITO À VIDA", "CONCEPÇÃO", "CONTRACEPÇÃO", "CONTRACEPTIVO", "MISOPROSTOL", "MIFEPRISTONE", "CYTOTEC", "ÚTERO", "GESTAÇÃO", "GRAVIDEZ", "PARTO", "VIOLÊNCIA OBSTÉTRICA", "FETO", "BEBÊ", "CRIANÇA", "VIOLÊNCIA SEXUAL", "FEMINICÍDIO", "MORTE DE MULHER", "MORTE DE MULHERES", "HOMICÍDIO DE MULHER", "HOMICÍDIO DE MULHERES", "ASSÉDIO SEXUAL", "ASSÉDIO", "ESTUPRO", "VIOLÊNCIA SEXUAL", "ABUSO SEXUAL", "ESTUPRO DE VULNERÁVEL", "LICENÇA MATERNIDADE", "FEMININO", "MULHER NEGRA", "MULHERES NEGRAS", "MULHERES QUILOMBOLAS", "MULHERES INDÍGENAS", "NEGRAS", "NEGRA", "RACISMO", "RAÇA", "RACIAL", "ABUSO SEXUAL", "MATERNIDADE", "MÃE", "AMAMENTAÇÃO", "SEXUALIDADE", "SEXO", "GÊNERO", "FEMINISMO", "MACHISMO", "GUARDA DE FILHOS", "GUARDA DOS FILHOS", "IGUALDADE DE GÊNERO", "IDENTIDADE DE GÊNERO", "IDEOLOGIA DE GÊNERO", "EDUCAÇÃO SEXUAL", "ESCOLA SEM PARTIDO", "TRANSEXUAL", "TRANSEXUALIDADE", "MULHER TRANS", "MULHERES TRANS", "MUDANÇA DE SEXO", "READEQUAÇÃO SEXUAL", "EXPLORAÇÃO SEXUAL", "PROSTITUIÇÃO", "ORIENTAÇÃO SEXUAL", "HOMOSSEXUAL", "HOMOSSEXUALIDADE", "HOMOSSEXUALISMO",  "LÉSBICA",  "LÉSBICAS",  "DIREITO DOS HOMENS", "EDUCAÇÃO RELIGIOSA",  "DEUS", "RELIGIÃO", "EDUCACÃO DOMICILIAR", "HOMESCHOOLING", "CRECHE",  "EDUCAÇÃO INFANTIL",  "CASAMENTO INFANTIL"]
  mask = df_projetos_api_final['EmentaMateria'].str.contains('|'.join(search_list))
  seleciona = df_projetos_api_final[mask]
  seleciona.info()
  </code></pre>