Saltar al contenido

Encuentre el nombre de la columna que tiene el valor máximo para cada fila

Esta reseña fue analizado por expertos así aseguramos la exactitud de nuestro contenido.

Solución:

Puedes usar idxmax con axis=1 para encontrar la columna con el mayor valor en cada fila:

>>> df.idxmax(axis=1)
0    Communications
1          Business
2    Communications
3    Communications
4          Business
dtype: object

Para crear la nueva columna ‘Max’, use df['Max'] = df.idxmax(axis=1).

para encontrar el fila índice en el que se produce el valor máximo en cada columna, utilice df.idxmax() (o equivalente df.idxmax(axis=0)).

Y si desea producir una columna que contenga el nombre de la columna con el valor máximo pero considerando solo un subconjunto de columnas, entonces use una variación de la respuesta de @ajcr:

df['Max'] = df[['Communications','Business']].idxmax(axis=1)

Tú podrías apply en el marco de datos y obtener argmax() de cada fila a través de axis=1

In [144]: df.apply(lambda x: x.argmax(), axis=1)
Out[144]:
0    Communications
1          Business
2    Communications
3    Communications
4          Business
dtype: object

Aquí hay un punto de referencia para comparar qué tan lento apply el método es para idxmax() por len(df) ~ 20K

In [146]: %timeit df.apply(lambda x: x.argmax(), axis=1)
1 loops, best of 3: 479 ms per loop

In [147]: %timeit df.idxmax(axis=1)
10 loops, best of 3: 47.3 ms per loop

Eres capaz de añadir valor a nuestro contenido informacional colaborando tu experiencia en las notas.

¡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 *