Pandas Groupby Promedio

Pandas Groupby Promedio



Cuando sumamos dos o más valores y su suma se divide por el número total de valores sumados, el resultado es un promedio. Pandas Mean devuelve el promedio de los datos o valores a lo largo de un eje dado. Los pandas devolverán una serie con el promedio en un eje si se aplica el método mean() a un marco de datos. Los pandas devuelven un valor numérico (número único) si se usa 'media ()' en una serie. Las funciones se pueden aplicar a las categorías después de crear los grupos de categorías. Es una idea simple pero una técnica altamente efectiva que se aplica con frecuencia en la ciencia de datos. Nos permite crear un resumen de los datos de cada grupo, aplicar modificaciones específicas del grupo y realizar una filtración de datos. Con la función groupby(), el objeto se puede dividir, se puede aplicar una función y luego se pueden combinar los productos. Grandes conjuntos de datos se pueden agrupar con esto y se pueden realizar operaciones en los grupos.

¿Cómo usar el método groupby.mean() en Pandas?

Para calcular el promedio de un dataframe o el promedio de columnas específicas de un dataframe, podemos usar la función groupby.mean(). Demostraremos cómo usarlo en los siguientes ejemplos.







Ejemplo # 01: Determinar el promedio de una sola columna de enteros agrupando los datos de una sola columna

Usando la función pd.DataFrame(), primero crearemos un marco de datos para que podamos dividir los datos de la columna o columnas del marco de datos en grupos y luego encontrar su valor medio. Antes de crear el marco de datos, debemos importar el módulo pandas junto con la biblioteca numpy.





Como se puede ver, hemos creado nuestro marco de datos utilizando el diccionario de pandas. Tenemos 3 columnas en nuestro marco de datos df, es decir, 'artículos', 'fabricante' y 'cantidad'. En la columna 'artículos', hemos guardado los valores ('camisa', 'corbata', 'pantalones', 'camisa', 'corbata', 'pantalones', 'camisa', 'pantalones', 'pantalones', ' empate'), mientras que las columnas 'fabricante' y 'cantidad' que contienen los valores ('italia', 'francia', 'china', 'francia', 'china', 'italia', 'china', 'italia', 'francia', 'china') y (13, 16, 21, 32, 26, 41, 24, 42, 12, 15) respectivamente. Agrupemos los valores en la columna del fabricante y determinemos el valor de la cantidad media para cada fabricante distinto.





El valor del fabricante 'china' tiene un valor de cantidad media de 21,5, el valor de cantidad media para 'francia' es 20,0 y el valor de cantidad media para 'Italia' es 32,0. También podemos especificar un índice para la salida usando la función reset_index con la función groupby.mean().



Ejemplo # 02: Encuentre la media de una sola columna flotante agrupando los datos de una sola columna

Hemos visto cómo podemos encontrar la media de la columna entera después de agrupar los datos. Ahora probemos con otra columna de tipo de datos como float. Se creará un marco de datos con al menos una columna con valores flotantes mediante la función pd.DataFrame().

Al colocar un diccionario dentro de pd.DataFrame(), hemos creado un marco de datos con tres columnas. La columna 'nombre' almacena los nombres de algunos jugadores aleatorios ('Sam', 'Jay', 'Leo', 'Mike', 'Will', 'Billy', 'Jhonny', 'Lara', 'Hanna', 'Tony'), la columna 'equipo' que representa el equipo al que pertenece cada jugador ('A', 'A', 'B', 'A', 'B', 'A', 'C', 'B ', 'C', 'C'), y la columna 'altura' almacena las alturas de cada jugador como un valor flotante (5.6, 5.4, 6.3, 5.2, 5.5, 6.4, 5.6, 5.8, 6.0, 5.2). Agrupemos los datos en la columna 'equipo' y determinemos el valor de altura media para cada valor distinto de 'equipo'.

Puedes ver que el valor promedio de la altura de los jugadores del equipo A es 5,65, mientras que el promedio de las alturas de los jugadores de los equipos B y C es 5,866 y 5,6, respectivamente.

Ejemplo # 03: Determine la media de múltiples columnas usando la función groupby.mean()

En los ejemplos anteriores, determinamos el promedio de una sola columna. Sin embargo, también se puede determinar la media de numerosas columnas para cada grupo. Vamos a crear un marco de datos que tenga más de una columna numérica, después de importar los pandas y los módulos numpy.

En el marco de datos recién creado, hay tres columnas con las etiquetas 'nombre', 'puntuación' y 'coincidencias'. Los nombres de columna que tienen los valores de datos como una cadena ('Ron', 'Jim', 'Dany', 'Jim', 'Jim', 'Dany', 'Ron', 'Ron', 'Dany', 'Jim' ), mientras que la 'puntuación' y los 'partidos' consisten en datos numéricos como (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) y (2, 3, 1, 2, 1, 3 , 4, 1, 2, 1). Ahora encontremos la media de la columna 'puntuación' y 'coincidencias' después de agrupar los datos de la columna 'nombre'. La función groupby.mean() se utilizará para esto.

Se puede notar que el grupo ‘Dany’ tiene un puntaje promedio de 2.66 en 2.00 partidos. El grupo Jim tiene una puntuación media de 2,75 y el valor medio de los partidos jugados es de 1,75. Mientras que el grupo ‘Ron’ tiene un valor de puntaje promedio de 2.66 y el valor promedio de partidos jugados es de 2.33.

El promedio de un grupo de categorías por objeto también se puede calcular usando el método agg(). Proporcionaremos la media como argumento para la función agg(). Para agregar usando operaciones simples o múltiples en el eje dado, podemos usar la función agg().

La salida es la misma que antes.

Ejemplo n.° 04: determinar la media de columnas específicas agrupando varias columnas

En los ejemplos 1, 2 y 3, hemos agrupado los valores o datos de una sola columna. Ahora agruparemos varias columnas usando la lista de etiquetas de columna dentro de la función groupby() y luego encontraremos el valor promedio para cada grupo. Se pasará un diccionario 'd' dentro de la función pd.Dataframe() como entrada para crear el marco de datos.

Hemos creado el dataframe requerido. La columna 'deportes' almacena el nombre de algunos deportes ('bádminton', 'fútbol', 'tenis', 'baloncesto', 'fútbol', 'tenis', 'baloncesto', 'fútbol', 'bádminton', ' baloncesto', 'baloncesto', 'tenis'), los nombres de países ('China', 'Rusia', 'Italia', 'España', 'Rusia', 'Italia', 'China', 'Italia', ' España', 'China', 'Rusia', 'Italia') se almacenan en la columna 'país'. Mientras que en la columna 'ganar' hemos almacenado el número de partidos ganados por cada país en cada deporte (13, 10, 6, 7, 10, 12, 7, 11, 8, 13, 11, 6). Usemos la función groupby.mean() para encontrar la media de los valores de la columna 'ganar' agrupando las columnas 'deportes' y 'país'.

La función ha determinado con éxito los promedios de los valores de la columna 'ganar' para cada deporte en el país. El marco de datos agrupado por se puede restablecer utilizando la función reset_index(), que también genera un nuevo índice, dándole una estructura de marco de datos adecuada.

Se agrega un índice para la fila de cada marco de datos. Para organizar los resultados en una tabla atractiva, también podemos usar la función pivot().

Conclusión

En este tutorial, hemos discutido cuál es la media o el promedio de los números y cómo encontrar la media de una columna específica (una o más) después de agrupar la columna o columnas de un marco de datos. Implementamos algunos ejemplos en este artículo para enseñarle cómo determinar el promedio de una sola columna de números enteros o flotantes al agrupar los datos de una sola columna; cómo determinar la media de múltiples columnas usando la función groupby.mean(); y también cómo determinar la media de columnas específicas agrupando las múltiples columnas.