GroupBy et agréger plusieurs colonnes dans Pandas

Fariba Laiq 13 juin 2022
GroupBy et agréger plusieurs colonnes dans Pandas

La bibliothèque Pandas est une puissante bibliothèque d’analyse de données en Python. Nous pouvons effectuer de nombreux types de manipulations sur une trame de données en utilisant Pandas en Python.

Le groupby() est une méthode qui divise les données en plusieurs groupes en fonction de critères spécifiques. Après cela, nous pouvons effectuer certaines opérations sur les données groupées.

Appliquer les fonctions groupby() et aggregate() sur plusieurs colonnes dans Pandas Python

Parfois, nous devons regrouper les données de plusieurs colonnes et appliquer des méthodes aggregate(). Les méthodes aggregate() sont les méthodes qui combinent les valeurs de plusieurs lignes et renvoient une seule valeur, par exemple, count(), size(), mean(), sum(), mean(), etc.

Dans le code suivant, nous avons les données des étudiants qui contiennent des valeurs redondantes pour certaines colonnes. Si vous souhaitez regrouper les données en fonction du Name et de la Section de l’étudiant pour obtenir ses notes totales, nous regrouperons les données en fonction du nom et de la section, puis calculerons les notes totales à l’aide de la méthode aggregate().

Nous avons stocké le résultat renvoyé et l’avons affiché.

Exemple de code :

# 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)

Production:

Trame de données

GroupBy Agréger plusieurs colonnes

Nous pouvons également effectuer plusieurs opérations d’agrégation à la fois. Nous allons passer la liste des noms d’opérations à la méthode aggregate().

Ici, nous avons calculé les notes moyennes et totales des élèves en une fois en utilisant la méthode aggregate() en passant la liste des noms d’opérations.

Exemple de code :

# 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)

Production:

Trame de données

GroupBy Agréger plusieurs colonnes plusieurs méthodes

Auteur: Fariba Laiq
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