Pandas: cómo agrupar y agregar por varias columnas

Actualizado el 7 de mayo de 2021, por Luis Benites.

A menudo, es posible que desee agrupar y agregar por varias columnas de un DataFrame de pandas. Afortunadamente, esto es fácil de hacer usando las funciones pandas .groupby () y .agg () .

Este tutorial explica varios ejemplos de cómo utilizar estas funciones en la práctica.

Ejemplo 1: agrupar por dos columnas y encontrar el promedio

Supongamos que tenemos el siguiente DataFrame de pandas:

importar pandas como pd

#create DataFrame
df = pd.DataFrame ({'equipo': ['A', 'B', 'B', 'B', 'B', 'M', 'M', 'M'],
                   'posición': ['G', 'G', 'F', 'G', 'F', 'F', 'C', 'C'],
                   'asiste': [5, 7, 7, 8, 5, 7, 6, 9],
                   'rebotes': [11, 8, 10, 6, 6, 9, 6, 10]})

#view Impresión de DataFrame
 (df)

  la posición del equipo ayuda a los rebotes
0 AG 5 11
1 BG 7 8
2 BF 7 10
3 BG 8 6
4 BF 5 6
5 MF 7 9
6 MC 6 6
7 MC 9 10

El siguiente código muestra cómo agrupar por columnas ‘equipo’ y ‘posición’ y encontrar las asistencias medias:

df. groupby (['equipo', 'posición']). agg ({'asiste': ['significa']}). reset_index ()


        la posición del equipo ayuda
                          significar
0 A G 5,0
1 B F 6.0
2 B G 7.5
3 M C 7.5
4 M F 7.0

La salida nos dice:

  • La media de asistencias para los jugadores en la posición G en el equipo A es 5.0 .
  • La media de asistencias para los jugadores en la posición F del equipo B es 6.0 .
  • La media de asistencias para los jugadores en la posición G del equipo B es 7.5 .

Y así.

También podemos usar el siguiente código para cambiar el nombre de las columnas en el DataFrame resultante:

#agrupar por equipo y posición y encontrar asistencias medias 
new = df. groupby (['equipo', 'posición']). agg ({'asiste': ['significa']}). reset_index ()

# renombrar columnas 
new.columns = ['equipo', 'pos', 'mean_assists']

#view DataFrame 
print (nuevo)

	equipo pos mean_assists
0 A G 5,0
1 B F 6.0
2 B G 7.5
3 M C 7.5
4 M F 7.0

Ejemplo 2: agrupar por dos columnas y buscar varias estadísticas

Supongamos que usamos el mismo DataFrame de pandas que en el ejemplo anterior:

importar pandas como pd

#create DataFrame
df = pd.DataFrame ({'equipo': ['A', 'B', 'B', 'B', 'B', 'M', 'M', 'M'],
                   'posición': ['G', 'G', 'F', 'G', 'F', 'F', 'C', 'C'],
                   'asiste': [5, 7, 7, 8, 5, 7, 6, 9],
                   'rebotes': [11, 8, 10, 6, 6, 9, 6, 10]})

El siguiente código muestra cómo encontrar la mediana y la cantidad máxima de rebotes, agrupados en las columnas ‘equipo’ y ‘posición’:

df. groupby (['equipo', 'posición']). agg ({'rebotes': ['mediana', 'max']}). reset_index ()


        la posición del equipo rebota
                         mediana máxima
0 A G 11 11
1 B F 8 10
2 B G 7 8
3 M C 8 10
4 M F 9 9

La salida nos dice:

  • La mediana de las asistencias de rebotes para los jugadores en la posición G del equipo A es 11 .
  • El número máximo de rebotes para los jugadores en la posición G del equipo A es 11 .
  • La mediana de rebotes para los jugadores en la posición F del equipo B es 8 .
  • El máximo de rebotes para los jugadores en la posición F del equipo B es 10 .

Y así.

Recursos adicionales

Cómo filtrar un DataFrame de Pandas en múltiples condiciones
Cómo contar los valores perdidos en un DataFrame de Pandas
Cómo apilar múltiples DataFrames de 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:

1 comentario en «Pandas: cómo agrupar y agregar por varias columnas»

Deja un comentario

Un diagrama de caja es un tipo de diagrama que podemos usar para visualizar el resumen de cinco números de…
statologos comunidad-2

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

You have Successfully Subscribed!