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 :
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 :
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 :
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 :
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:
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.