La técnica Groupby es esencial debido a lo bien que agrega datos en términos de rendimiento y tamaño del código. El término "Groupby" generalmente describe un procedimiento que incluye los siguientes pasos:
En el proceso de agregación, se calcula una estadística resumida para cada grupo. Para cada grupo, el método agregado devuelve un valor agregado (valor único). Podemos realizar varias operaciones de agregación en datos agrupados después de dividir los datos en grupos utilizando la función Groupby.
¿Por qué los pandas proporcionan una variedad de métodos de agregación de datos??
Los pandas ofrecen una amplia gama de características y funciones para ayudar en el análisis y la agregación de datos. El uso de los métodos pivot (), groupby () y pivot_table (), por ejemplo, ofrece una perspectiva diferente sobre cómo se agregarían los datos. Proporcionan enfoques prácticos para llevar a cabo varias tareas en lugar de ser simplemente reempaquetados.
Cómo usar el .función agg () en pandas
Un promedio simple o suma de valores es la función de agregación que se usa con más frecuencia. Puede usar una columna de DataFrame o múltiples columnas para llamar a una función agregada. Verá muchas formas de agregar datos utilizando el método Pandas Groupby. Para demostrar cuánto más fácil es el procedimiento, veamos algunos ejemplos que se dan a continuación. Las operaciones matemáticas básicas como suma, mínimo, máximo, desviación absoluta media, desviación estándar, media, mediana, varianza y producto se encuentran entre las funciones de agregación incorporadas más utilizadas. Para resumir los datos, podemos combinar Groupby y la función Agg ().
Ejemplo # 01: Determine la suma de columnas agrupando los datos utilizando Groupby.función agg ()
Primero crearemos un marco de datos utilizando PD.Función DataFrame () para que podamos agrupar los datos de la columna o columnas de DataFrame y luego determinar su valor medio. Debemos importar los módulos de pandas y la biblioteca numpy antes de crear el marco de datos.
Como puede ver, utilizamos el diccionario Pandas para crear nuestro marco de datos. Nuestro DF DataFrame tiene cuatro columnas: "paciente" "grupo", "edad" y "botellas de sangre". Los valores de datos ('Ali', 'John', 'Mike', 'Mike', 'John', 'Ali', 'Ali', 'Mike') están contenidos por la columna "paciente", mientras que los valores de los datos ('a ',' A ',' b ',' c ',' a ',' c ',' c ',' b '), (21, 22, 24, 21, 20, 24, 22, 22) y (( 2, 3, 1, 1, 2, 3, 2, 1) están contenidos en las columnas "Grupo", "Age" y "Blood_bottles" respectivamente. Supongamos que tenemos que determinar la suma de los valores en la columna 'Blood_bottles' agrupando los valores en la columna 'Grupo'.
Para los datos del grupo 'a', la suma de los valores de 'Blood_bottles' es 7. Para los valores de grupo 'B' y 'C', la suma de valores de 'Blood_Bottles' es 2 y 6, respectivamente. También podemos agrupar varias columnas para determinar la suma para cada grupo.
Como se puede observar, hemos pasado una lista de etiquetas de columna, yo.mi., ['paciente', 'grupo'] dentro de la función GroupBy () para crear los grupos de categorías en cada columna especificada. Para cada grupo de columnas especificadas, hemos determinado la suma de valores en 'Blood_bottles'. Por ejemplo, 'Ali' está en los valores de la columna 'Grupo' A y C. En el Grupo A, la suma de los valores de 'Blood_Bottles' para Ali es 2 y 5 en el Grupo 'C'.
Ejemplo # 02: Aplicación de múltiples funciones en una sola columna de DataFrame usando Groupby.función agg ()
Se pueden aplicar múltiples agregaciones con el método "GroupBy ()" utilizando la función pandas agg (). Se puede pasar una lista invocatoria al método. Veamos cómo podemos agregar nuestros datos utilizando los métodos incorporados de la biblioteca Numpy. A diferencia del ejemplo anterior, aplicaremos múltiples funciones a una sola columna de DataFrame. El PD.La función DataFrame () se utilizará para crear un marco de datos para esto con al menos una columna que contiene valores numéricos.
Se ha creado el marco de datos requerido con una columna numérica I.mi. 'Marcas' con valores 41, 40, 35, 39, 49, 31, 34 y 42. Hay 3 columnas más 'estudiante', 'asignaturas' y 'grado' en nuestro marco de datos que se puede dividir en grupos utilizando la función GroupBy (). Los valores en la columna 'estudiantes' y 'materias' son ('harry', 'ron', 'harry', 'lana', 'sam', 'ron', 'lana', 'max') y ('c ++' , 'Java', 'Python', 'Python', 'ai', 'java', 'c ++', 'ai'). Mientras que el grado de columna contiene los valores de datos como cadenas, yo.mi., ('Ms', 'bs', 'bs', 'ms', 'ms', 'ms', 'bs', 'bs'). Suponga que tenemos que agrupar los datos de los 'sujetos' de la columna y determinar tanto la media como la suma de las 'marcas' de la columna para cada datos agrupados.
Hemos especificado el nombre de la columna de 'sujetos' como una cadena dentro de la función GroupBy () para convertir los datos en grupos de categorías. Para la columna Marks, hemos utilizado el método Agg (), y dentro de la función Agg () hemos especificado las funciones Numpy NP.suma y np.media para encontrar la suma y el promedio de las marcas de cada grupo de grupos en sujetos de columna. La suma y el valor medio para el valor de grupo 'ai' son 91 y 45.5, respectivamente. La suma de las marcas para el valor 'C ++' es 75, y el valor medio es 37.5. Para el grupo Java, la suma de las marcas es 71 y el valor medio es 35.5, mientras que la suma y el valor medio para Python son 74 y 37, respectivamente.
Ejemplo # 03: Aplicación de múltiples funciones en las múltiples columnas del marco de datos usando Groupby.función agg ()
En lugar de aplicar diferentes funciones a una sola columna de DataFrame, podemos aplicar múltiples funciones a diferentes columnas numéricas. Podemos usar un diccionario en la función Agg () como una entrada para aplicar un método de agregación específico a diferentes columnas de DataFrame. Importemos las bibliotecas Pandas y Numpy antes de crear un marco de datos con múltiples columnas numéricas.
Hay cuatro columnas en el marco de datos recién creado con los nombres "reproductor", "MENTAR_SCORE", 'Highest_Score' y "Ubicación". En la columna 'jugador', hemos almacenado los nombres de algunos jugadores como valores de datos de cadena ('Leo', 'Alex', 'Leo', 'Fin', 'Leo', 'Alex', 'Fin', ' Fin '), en la columna' MENTAR_SCORE 'Hay puntajes más bajos de jugadores para algunos partidos (12, 34, 2, 21, 9, 1, 0, 34), mientras que en la columna' Highest_Score 'tenemos los puntajes más altos de los jugadores (12, 34, 2, 21, 9, 1, 0, 34) y en la columna 'ubicación' están los nombres de lugares donde los jugadores han jugado sus partidos ('Francia', 'Inglaterra', 'Dubai', ',', Dubai ',' Inglaterra ',' Francia ',' Dubai ',' Francia ').
Supongamos que después de agrupar los datos en la columna de 'jugadores', tenemos que encontrar el promedio de los valores de la columna 'Menores_score' y la suma para los valores de datos 'Hightest_Score' para cada grupo.
Dentro de la función agg (), pasamos un diccionario de Python 'highest_score': 'suma', 'mense_score': 'media' para encontrar la suma y el valor promedio para una columna especificada contra cada grupo. Se puede ver que el valor agrupado Alex tiene la suma del valor 'Highest_Score' 132 y el promedio del valor 'Menor_score' 17.5. Para 'aleta' la suma de valores es 199 y el promedio es de 18.33333333 en las columnas 'Highest_Score' y 'Lessscore' respectivamente. El valor del grupo LEO tiene un valor de suma de 180 en 'Highest_Score' y un valor promedio de 7.666667 en 'MENSE_SCORE'.
Conclusión
En este tutorial, hemos discutido las funciones GroupBy () y de agregación en Pandas. También hemos discutido cómo usar el grupo.función agg (). Implementamos tres ejemplos en este artículo para enseñarle cómo utilizar una sola función de agregación en una columna DataFrame agrupando los datos de columnas individuales y múltiples, cómo aplicar múltiples funciones de agregación en una sola columna de un cuadro de datos y cómo aplicar múltiples múltiples Funciones de agregación en las múltiples columnas del marco de datos utilizando el grupo.función agg ().