work with tutorial seleccionar panda functions funciones data columnas python dataframe pandas

python - with - seleccionar columnas de un dataframe pandas



Pandas DataFrame: aplica funciĆ³n a todas las columnas (2)

Puedo usar .map(func) en cualquier columna en un df, como:

df=DataFrame({''a'':[1,2,3,4,5,6],''b'':[2,3,4,5,6,7]}) df[''a'']=df[''a''].map(lambda x: x > 1)

Yo también podría:

df[''a''],df[''b'']=df[''a''].map(lambda x: x > 1),df[''b''].map(lambda x: x > 1)

¿Hay una forma más pitónica de aplicar una función a todas las columnas o al cuadro completo (sin un bucle)?


A partir de 0.20.0 adelante, puede usar la transform

In [578]: df.transform(lambda x: x > 1) Out[578]: A B C 0 False False False 1 False True False 2 False False True 3 False True True 4 False False False In [579]: df Out[579]: A B C 0 -1 0 0 1 -4 3 -1 2 -1 0 2 3 0 3 2 4 1 -1 0

Y, para este caso simplista, ¿por qué no simplemente usar df > 1 ?

In [582]: df > 1 Out[582]: A B C 0 False False False 1 False True False 2 False False True 3 False True True 4 False False False


Si entiendo bien, estás buscando el método de applymap .

>>> print df A B C 0 -1 0 0 1 -4 3 -1 2 -1 0 2 3 0 3 2 4 1 -1 0 >>> print df.applymap(lambda x: x>1) A B C 0 False False False 1 False True False 2 False False True 3 False True True 4 False False False