Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

428
Visualizações
Identifique instancias donde la cadena existe más de una vez seguidas + Python, Pandas, Dataframe

Quiero escribir un script que identificará las instancias en las que aparece una palabra (cadena) en una fila de un marco de datos de pandas más de una vez.

Usando una función lambda, puedo identificar la existencia de una cadena en una fila, pero no puedo encontrar ninguna información sobre cómo identificar '2 o más' instancias de la cadena, este es un ejemplo de lo que tengo actualmente:

 df = pd.DataFrame({'ID':[1,2,3],'Ans1':['Yes','Yes','Yes'],'Ans2':['No','Yes','No'],'Ans3':['No','No','No']}) df['Result'] = df.apply(lambda row: row.astype(str).str.contains('Yes').any(), axis=1) df

Pseudocódigo para lo que estoy tratando de obtener:

 if 'Yes' isin row > 1: df['Results'] == True

Resultado deseado:

 ID Ans1 Ans2 Ans3 Result 1 Yes No No False 2 Yes Yes No True 3 Yes No No False
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Intente, puede hacer un filtrado de columnas si no desea verificar que el marco de datos completo sea sí, luego use eq , equals to y sum with axis=1 para sumar valores a lo largo de las filas y luego verifique si esa suma es gt , mayor que, 1:

 df['Result'] = df.eq('Yes').sum(1).gt(1)

Producción:

 ID Ans1 Ans2 Ans3 Result 0 1 Yes No No False 1 2 Yes Yes No True 2 3 Yes No No False
over 4 years ago · Santiago Trujillo Relatório

0

También podrías hacer:

 df['Result'] = df[df == 'Yes'].count(axis=1).gt(1)
over 4 years ago · Santiago Trujillo Relatório

0

Este código debería funcionar para su caso específico. Literalmente implementa su pseudocódigo en cada fila.

 def check_row(row): count = 0 for i in row: if i == 'Yes': count += 1 if count > 1: return True else: return False df['Results'] = df.apply(check_row, axis=1)
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda