Agrupar por y agregar múltiples columnas en Pandas

Fariba Laiq 13 junio 2022
Agrupar por y agregar múltiples columnas en Pandas

La biblioteca Pandas es una poderosa biblioteca de análisis de datos en Python. Podemos realizar muchos tipos diferentes de manipulación en un dataframe usando Pandas en Python.

El groupby() es un método que divide los datos en varios grupos en función de criterios específicos. Después de eso, podemos realizar ciertas operaciones en los datos agrupados.

Aplique las funciones groupby() y aggregate() en múltiples columnas en Pandas Python

A veces necesitamos agrupar los datos de varias columnas y aplicar algunos métodos agregados(). Los métodos aggregate() son aquellos métodos que combinan los valores de varias filas y devuelven un único valor, por ejemplo, contar(), tamaño(), media(), suma(), media(), etc.

En el siguiente código, tenemos los datos de los estudiantes que contienen valores redundantes para algunas columnas. Si desea agrupar los datos en función del Name y la Sección del estudiante para obtener sus calificaciones totales, agruparemos los datos según el nombre y la sección y luego calcularemos las calificaciones totales utilizando el método agregado().

Hemos almacenado el resultado devuelto y lo hemos mostrado.

Código de ejemplo:

# Python 3.x
import pandas as pd

student = {
    "Name": ["Jhon", "Alia", "Jhon", "Alia", "Sam", "Smith", "Sam", "Smith"],
    "Section": ["A", "A", "A", "A", "B", "B", "B", "B"],
    "Course": ["Java", "Java", "Dart", "Dart", "Java", "Java", "Dart", "Dart"],
    "Marks": [70, 80, 90, 60, 80, 90, 50, 80],
}
df = pd.DataFrame(student)
display(df)
result = df.groupby(["Name", "Section"]).aggregate("sum")
display(result)

Producción:

Marco de datos

GroupBy Agregar varias columnas

También podemos realizar múltiples operaciones agregadas a la vez. Pasaremos la lista de nombres de operaciones al método aggregate().

Aquí, hemos calculado las calificaciones medias y totales de los estudiantes a la vez usando el método aggregate() pasando la lista de nombres de operaciones.

Código de ejemplo:

# Python 3.x
import pandas as pd

student = {
    "Name": ["Jhon", "Alia", "Jhon", "Alia", "Sam", "Smith", "Sam", "Smith"],
    "Section": ["A", "A", "A", "A", "B", "B", "B", "B"],
    "Course": ["Java", "Java", "Dart", "Dart", "Java", "Java", "Dart", "Dart"],
    "Marks": [70, 80, 90, 60, 80, 90, 50, 80],
}
df = pd.DataFrame(student)
display(df)
result = df.groupby(["Name", "Section"]).aggregate(["mean", "sum"])
display(result)

Producción:

Marco de datos

Agrupar por Agregado Múltiples columnas Múltiples métodos

Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Artículo relacionado - Pandas GroupBy