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

102
Vistas
Verifique si los valores en una columna existen en otro lugar en una fila de marco de datos

Supongamos que tengo un marco de datos como el siguiente:

 df = pd.DataFrame({'a':[1,2,3,4],'b':[2,3,4,5],'c':[3,4,5,6],'d':[5,3,2,4]})

Quiero verificar si los elementos en la columna d existen en otro lugar en su fila correspondiente. Así que el resultado que quiero es

 [False, True, False, True]

Con ese fin, usé

 df.apply(lambda x: x['d'] in x[['a','b','c']], axis=1)

pero esto de alguna manera me está dando [False, False, False, False] .

over 4 years ago · Santiago Trujillo
5 Respuestas
Responde la pregunta

0

Aprovechando la transmisión numpy, puede hacerlo fácilmente:

 (df[['d']].to_numpy() == df.to_numpy())[:, :-1].any(axis=1)

Producción:

 array([False, True, False, True])

Usar numpy es lo más rápido que puede obtener.

over 4 years ago · Santiago Trujillo Denunciar

0

Tratar:

 out = (df[['a','b','c']].T==df['d']).any()

Producción:

 0 False 1 True 2 False 3 True dtype: bool
over 4 years ago · Santiago Trujillo Denunciar

0

Use eq para transmitir la comparación de igualdad entre las columnas. Luego verifique si hay coincidencias en la fila:

 df.drop(columns='d').eq(df['d'], axis=0).any(axis=1).array <PandasArray> [False, True, False, True] Length: 4, dtype: bool

Speedwise, una opción numpy es la mejor.

over 4 years ago · Santiago Trujillo Denunciar

0

Prueba con

 df.eq(df.pop('d'),axis=0).any(1)#.values 0 False 1 True 2 False 3 True dtype: bool
over 4 years ago · Santiago Trujillo Denunciar

0

Necesita agregar 'valores':

 df.apply(lambda x: x['d'] in x[['a','b','c']].values, axis=1) Out[11]: 0 False 1 True 2 False 3 True dtype: bool

Lo que ha escrito es comprobar si x['d'] está en el conjunto de claves de x[['a','b','c']] no valores. Los diccionarios funcionan de manera similar:

 1 in {'a': 1, 'b': 2} Out[30]: False 1 in {'a': 1, 'b': 2}.values() Out[31]: True
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