Contenido de este artículo
- 0
- 0
- 0
- 0
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/
¿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:
Excelente aporte, justo lo que necesitaba.
Gracias.