Cómo obtener el elemento máximo de un marco de datos de Pandas: filas, columnas, marco de datos completo

En este tutorial, aprenda cómo encontrar el elemento máximo en un DataFrame de Pandas para columnas, filas y todo el DataFrame, usando Python.

Introducción

Un DataFrame es una estructura de datos que representa un tipo especial de arreglo bidimensional, construido sobre múltiples objetos Series. Estas son las estructuras de datos centrales de Pandas, un marco de análisis de datos extremadamente popular y poderoso para Python.

{.icon aria-hidden=“true”}

Consejo: Si aún no está familiarizado con DataFrames y cómo funcionan, lea nuestra Guía de marcos de datos.

Los DataFrames tienen la capacidad de dar un nombre a filas y/o columnas y, en cierto sentido, representar tablas.

Importemos Pandas y creemos un DataFrame desde un diccionario:

1
2
3
4
5
6
7
8
9
import pandas as pd

df_data = {
    "column1": [24, 9, 20, 24],
    "column2": [17, 16, 201, 16]
}

df = pd.DataFrame(df_data) 
print(df)

Pandas tiene una gran integración con Python y podemos crear fácilmente DataFrames a partir de diccionarios. El df que hemos construido ahora contiene las columnas y sus respectivos valores:

1
2
3
4
5
   column1  column2
0       24       17
1        9       16
2       20      201
3       24       16

Cada columna tiene una lista de elementos, y podemos buscar el máximo elemento de cada columna, cada fila o todo el DataFrame.

Encuentra el elemento máximo en la columna de Pandas DataFrame

Para encontrar el elemento máximo de cada columna, llamamos al método max() de la clase DataFrame, que devuelve una Serie de nombres de columna y sus valores más grandes:

1
2
max_elements = df.max()
print(max_elements)

Esto nos dará el valor máximo para cada columna de nuestro df, como se esperaba:

1
2
3
column1     24
column2    201
dtype: int64

Sin embargo, para encontrar el elemento max() de una sola columna, primero lo aísla y llama al método max() en esa Serie específica:

1
2
max_element = df['column1'].max()
print(max_element)
1
24

Encuentra el elemento máximo en la fila de Pandas DataFrame

Encontrar el elemento max de cada fila de DataFrame también se basa en el método max(), pero establecemos el argumento axis en 1.

El valor predeterminado para el argumento eje es 0. Si el eje es igual a 0, el método max() encontrará el elemento máximo de cada columna. Por otro lado, si el ’eje’ es igual a 1, el ‘max()’ encontrará el elemento máximo de cada fila.

1
2
max_elements = df.max(axis=1)
print(max_elements)

Esto nos dará el valor máximo para cada fila de nuestro df, como se esperaba:

1
2
3
4
5
0     24
1     16
2    201
3     24
dtype: int64

Alternativamente, si desea buscar a través de una fila específica, puede acceder a ella a través de iloc[]:

1
2
3
4
print(df)

for row in df.index:
    print(f'Max element of row {row} is:', max(df.iloc[row]))

Imprimimos el df como referencia para que sea más fácil verificar los resultados, y obtuvimos el elemento max() de cada fila, obtenido a través de iloc[]:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
column1  column2
0       24       17
1        9       16
2       20      201
3       24       16

Max element of row 0 is: 24
Max element of row 1 is: 16
Max element of row 2 is: 201
Max element of row 3 is: 24

Encuentra el elemento máximo en todo el marco de datos de Pandas

Finalmente, podemos echar un vistazo a cómo encontrar el elemento máximo en un DataFrame completo.

Según lo que hemos visto anteriormente, esto debería ser bastante simple. Simplemente usaremos el método integrado max() y le pasaremos una de las dos listas creadas previamente de elementos máximos, ya sea para todas las filas o todas las columnas. Estas son dos facetas de los mismos datos, por lo que se garantiza el mismo resultado.

Esto debería darnos un único valor más alto en todo el df:

1
2
3
4
5
6
7
8
max_by_columns = df.max()
max_by_rows = df.max(axis=1)

df_max = max(max_by_columns)
print("Max element based on the list of columns: ", df_max)

df_max2 = max(max_by_rows)
print("Max element based on the list of rows: ", df_max2)

Esto generará:

1
2
Max element based on the list of columns:  201
Max element based on the list of rows:  201

¡Esto es esperado y correcto! El elemento máximo de una lista de elementos máximos de cada fila debe ser el mismo que el elemento máximo de una lista de elementos máximos de cada columna y ambos deben ser iguales al elemento máximo de todo el DataFrame.

Conclusión

En este breve tutorial, hemos analizado cómo encontrar el elemento máximo de un DataFrame de Pandas, para columnas, filas y toda la instancia de DataFrame.