Cómo encontrar el valor máximo por grupo en Pandas

A menudo, puede estar interesado en encontrar el valor máximo por grupo en un DataFrame de pandas.

Afortunadamente, esto es fácil de hacer usando las funciones groupby () y max () con la siguiente sintaxis:

df. groupby (' nombre_columna '). max ()

Este tutorial explica varios ejemplos de cómo usar esta función en la práctica usando el siguiente DataFrame de pandas:

importar pandas como pd

#create pandas DataFrame 
df = pd. DataFrame ({'equipo': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
                   'puntos': [24, 23, 27, 11, 14, 8, 13],
                   'rebotes': [11, 8, 7, 6, 6, 5, 12]})

#display Impresión de DataFrame
 (df)

  rebotes de puntos de equipo
0 A 24 11
1 A 23 8
2 B 27 7
3 B 11 6
4 B 14 6
5 C 8 5
6 C 13 12

Ejemplo 1: Valor máximo de varias columnas agrupadas por una variable

El siguiente código muestra cómo encontrar el valor máximo de varias columnas, agrupadas por una variable en un DataFrame:

# encontrar valores máximos de puntos y rebotes, agrupados por equipo 
df. groupby (' equipo '). max (). reset_index ()


        rebotes de puntos de equipo
0 A 24 11
1 B 27 7
2 C 13 12

De la salida podemos ver que:

  • El equipo A tiene un valor máximo de puntos de 24 y un valor máximo de rebotes de 11.
  • El equipo B tiene un valor máximo de puntos de 27 y un valor máximo de rebotes de 7.
  • El equipo C tiene un valor máximo de puntos de 13 y un valor máximo de rebotes de 12.

Tenga en cuenta que usamos la función reset_index () para asegurarnos de que el índice coincida con el índice del DataFrame original.

Ejemplo 2: Valor máximo de una sola columna agrupada por una variable

El siguiente código muestra cómo encontrar el valor máximo de una sola columna, agrupada en una sola variable:

# encontrar el valor máximo de puntos, agrupados por equipo 
df. groupby (' equipo ') [' puntos ']. max (). reset_index ()

        puntos de equipo
0 A 24
1 B 27
2 C 13

Ejemplo 3: ordenar por valores máximos

También podemos usar la función sort_values ​​() para ordenar los valores máximos.

Podemos especificar ascendente = Falso para ordenar de mayor a menor:

# encontrar el valor máximo por equipo, ordenar 
df descendente . groupby (' equipo ') [' puntos ']. max (). reset_index (). sort_values ([' puntos '], ascendente = Falso )


        puntos de equipo
1 B 27
0 A 24
2 C 13

O podemos especificar ascendente = Verdadero para ordenar de menor a mayor:

# encontrar el valor máximo por equipo, ordenar  
df ascendente . groupby (' equipo ') [' puntos ']. max (). reset_index (). sort_values ([' puntos '], ascendente = Verdadero )

        puntos de equipo
2 C 13
0 A 24
1 B 27

Recursos adicionales

Cómo calcular la suma de columnas en pandas
Cómo calcular la media de columnas en pandas
Cómo encontrar el valor máximo de columnas en pandas

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

A menudo, en estadística queremos probar si alguna suposición es verdadera o no sobre un parámetro de población . Por…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!