Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

430
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

0

También podrías hacer:

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

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda