Saltar al contenido

Selección de columnas con condición en Pandas DataFrame

Posterior a consultar con expertos en esta materia, programadores de varias áreas y profesores dimos con la solución al problema y la dejamos plasmada en este post.

Solución:

Puedes usar all con boolean indexing:

print ((df == 'something1').all(1))
0     True
1    False
2     True
3    False
4    False
dtype: bool

print (df[(df == 'something1').all(1)])
         col1        col2
0  something1  something1
2  something1  something1

EDITAR:

Si necesita seleccionar solo algunas columnas que puede usar isin con boolean indexing para seleccionar deseado columns y luego usar subsetdf[cols]:

print (df)
         col1        col2 col3
0  something1  something1    a
1  something2  something3    s
2  something1  something1    r
3  something2  something3    a
4  something1  something2    a

cols = df.columns[df.columns.isin(['col1','col2'])]
print (cols)
Index(['col1', 'col2'], dtype='object')

print (df[(df[cols] == 'something1').all(1)])
         col1        col2 col3
0  something1  something1    a
2  something1  something1    r

Por qué no:

df[(df.col1 == 'something1') | (df.col2 == 'something1')]

salidas:

    col1    col2
0   something1  something1
2   something1  something1
4   something1  something2

Recuerda que tienes autorización de glosar tu experiencia si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *