Pandas: cómo agrupar y agregar por varias columnas

Actualizado por ultima vez el 7 de mayo de 2021, por .

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/

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!