Encuentre valores máximos y posición en columnas y filas de un Dataframe en Pandas

En este artículo, vamos a discutir cómo encontrar el valor máximo y su posición de índice en columnas y filas de un marco de datos.

Marco de datos.max()

El método pandas dataframe.max() encuentra el máximo de los valores en el objeto y lo devuelve. Si la entrada es una serie, el método devolverá un escalar que será el máximo de los valores de la serie. Si la entrada es un marco de datos, el método devolverá una serie con un máximo de valores sobre el eje especificado en el marco de datos. El eje de índice es el eje predeterminado tomado por este método.
 

Sintaxis: DataFrame.max(axis=Ninguno, skipna=Ninguno, nivel=Ninguno, numeric_only=Ninguno, **kwargs)
Parámetros:  
eje: {índice (0), columnas (1)} 
skipna: Excluir NA/valores nulos al calcular el 
nivel de resultado: si el eje es un índice múltiple (jerárquico), cuente a lo largo de un nivel particular, colapsando en una serie 
numeric_only: incluye solo columnas flotantes, int y booleanas. Si es Ninguno, intentará usar todo, luego use solo datos numéricos. No implementado para Serie.
Devoluciones : max : Series o DataFrame (si se especifica el nivel) 
 

Tomemos un ejemplo de cómo usar esta función. Supongamos que tenemos un marco de datos 

Python3

import numpy as np
import pandas as pd
# List of Tuples
matrix = [(10, 56, 17),
          (np.NaN, 23, 11),
          (49, 36, 55),
          (75, np.NaN, 34),
          (89, 21, 44)
          ]
# Create a DataFrame
abc = pd.DataFrame(matrix, index = list('abcde'), columns = list('xyz'))
 
# output
abc

Producción: 
 

¿Cómo encontrar los valores máximos de cada columna?

Para encontrar el valor máximo de cada columna, llame al método max() en el objeto Dataframe sin tomar ningún argumento. 

Python3

# find the maximum of each column
maxValues = abc.max()
 
print(maxValues)

Producción : 
 

maximum values each column in dataframe

Podemos ver que devolvió una serie de valores máximos donde el índice es el nombre de la columna y los valores son los máximos de cada columna.

¿Cómo encontrar los valores máximos de cada fila?

Para encontrar el valor máximo de cada fila, llame al método max() en el objeto Dataframe con un eje de argumento = 1.  

Python3

# find the maximum values of each row
maxValues = abc.max(axis = 1)
print(maxValues)

Producción : 
 

maximum values in dataframe-2

Podemos ver que devolvió una serie de valores máximos donde el índice es el nombre de la fila y los valores son los máximos de cada fila. Podemos ver que en los ejemplos anteriores, los valores de NaN se omiten al encontrar los valores máximos en cualquier eje. También podemos incluir valores de NaN si queremos.

¿Cómo encontrar los valores máximos de cada columna sin omitir NaN?

Python3

# find maximum value of each
# column without skipping NaN
maxValues = abc.max(skipna = False)
 
print(maxValues)

Producción : 
 

Find maximum values & position in columns and rows of a Dataframe-3

Al poner skipna=False también podemos incluir valores de NaN. Si existe algún valor de NaN, se considerará como el valor máximo.

¿Cómo encontrar los valores máximos de una sola columna o columnas seleccionadas?

Para obtener el valor máximo de una sola columna, consulte el siguiente ejemplo 

Python3

# find maximum value of a
# single column 'x'
maxClm = df['x'].max()
 
print("Maximum value in column 'x': " )
print(maxClm)

Producción : 
 

maximum vale in column

Tenemos otra forma de encontrar el valor máximo de una columna: 

Python3

# find maximum value of a
# single column 'x'
maxClm = df.max()['x']

El resultado será el mismo que el anterior. 
Producción: 
 

maximum vale in column

También se puede pasar una lista de columnas en lugar de una sola columna para encontrar los valores máximos de las columnas especificadas 

Python3

# find maximum values of a list of columns
maxValues = df[['x', 'z']].max()
 
print("Maximum value in column 'x' & 'z': ")
print(maxValues)

Producción : 
 

¿Cómo obtener una posición de valores máximos de cada columna?

DataFrame.idxmax(): el método Pandas dataframe.idxmax() devuelve el índice de la primera aparición del máximo sobre el eje solicitado. Al encontrar el índice del valor máximo en cualquier índice, se excluyen todos los valores NA/nulos. 

Sintaxis: DataFrame.idxmax(axis=0, skipna=True)
Parámetros: 
eje: 0 o ‘índice’ para las filas, 1 o ‘columnas’ para las columnas 
skipna: Excluir NA/valores nulos. Si una fila/columna completa es NA, el resultado será NA
Devuelve: idxmax: Serie 
 

Tomemos algunos ejemplos para entender cómo usarlo:

Cómo obtener la etiqueta de índice de fila del valor máximo en cada columna  

Python3

# find the index position of maximum
# values in every column
maxValueIndex = df.idxmax()
 
print("Maximum values of columns are at row index position :")
print(maxValueIndex)

Producción : 
 

Devuelve una serie que contiene los nombres de columna como índice y fila como etiquetas de índice donde existe el valor máximo en esa columna.

¿Cómo encontrar nombres de columna de valor máximo en cada fila?

Python3

# find the column name of maximum
# values in every row
maxValueIndex = df.idxmax(axis = 1)
 
print("Max values of row are at following columns :")
print(maxValueIndex)

Producción :
 

Devuelve una serie que contiene las etiquetas de índice de filas como índice y nombres de columna como valores donde existe el valor máximo en esa fila.
 

Publicación traducida automáticamente

Artículo escrito por ankthon y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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