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/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

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!