Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Regroupement par Plusieurs Colonnes | Agrégation de Données
Techniques Avancées dans Pandas

bookRegroupement par Plusieurs Colonnes

Ajoutons des informations sur la méthode .groupby(). Il est possible de regrouper selon plusieurs colonnes, mais l'ordre est essentiel dans ce cas. Dans le chapitre précédent, les données ont été regroupées par numéro de vol et le nombre de retards a été compté. Cette tâche peut être complexifiée en regroupant non seulement par la colonne 'Flight', mais aussi par la colonne 'Airline'. Consultez à nouveau les informations sur le jeu de données, puis examinez cet exemple simple (la sortie contient uniquement les 10 premières lignes) :

1234
import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/plane', index_col = 0) data_flights = data[['Flight', 'Delay', 'Airline']].groupby(['Flight', 'Airline']).count() print(data_flights.head(10))
copy

Explication :

data[['Flight', 'Delay', 'Airline']].groupby(['Flight', 'Airline']).count()
  • data[['Flight', 'Delay', 'Airline']] : colonnes utilisées, y compris celles servant au regroupement ;
  • .groupby(['Flight', 'Airline']) : ici, 'Flight' et 'Airline' sont les arguments de la fonction .groupby().

À noter : pour regrouper selon plusieurs colonnes, il faut les placer dans une liste ; l'ordre est déterminant. Ainsi, dans ce cas, si des lignes du jeu de données possèdent la même valeur dans la colonne 'Flight', elles appartiendront à un même groupe. Ensuite, à l'intérieur de ces groupes, la fonction identifie d'autres groupes pour les lignes ayant la même valeur dans la colonne 'Airline'. Enfin, grâce à la méthode .count() qui compte les lignes, la fonction calcule le nombre de lignes dans la colonne 'Delay' ayant la même valeur dans la colonne 'Airline' pour chaque groupe 'Flight'.

Tâche

Swipe to start coding

Votre tâche ici consiste à regrouper les données par l'aéroport de départ du vol, puis par le jour de la semaine. Calculez le temps moyen pour chaque groupe. Suivez l'algorithme pour réaliser la tâche :

  1. Regrouper les données :
    • Extraire les colonnes 'AirportFrom', 'DayOfWeek' et 'Time' de data (dans cet ordre) ;
    • Appliquer la méthode .groupby() sur les colonnes précédentes ;
    • Dans la méthode .groupby(), placer les colonnes 'AirportFrom' et 'DayOfWeek' ; l'ordre est important ;
    • Calculer la valeur moyenne de la colonne 'Time'.
  2. Afficher les 10 premières lignes de data_flights.

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you explain why the order of columns in `.groupby()` matters?

What does the `.count()` method do in this context?

Can you show how the output would change if we switched the order of the columns in `.groupby()`?

close

Awesome!

Completion rate improved to 3.03

bookRegroupement par Plusieurs Colonnes

Glissez pour afficher le menu

Ajoutons des informations sur la méthode .groupby(). Il est possible de regrouper selon plusieurs colonnes, mais l'ordre est essentiel dans ce cas. Dans le chapitre précédent, les données ont été regroupées par numéro de vol et le nombre de retards a été compté. Cette tâche peut être complexifiée en regroupant non seulement par la colonne 'Flight', mais aussi par la colonne 'Airline'. Consultez à nouveau les informations sur le jeu de données, puis examinez cet exemple simple (la sortie contient uniquement les 10 premières lignes) :

1234
import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/plane', index_col = 0) data_flights = data[['Flight', 'Delay', 'Airline']].groupby(['Flight', 'Airline']).count() print(data_flights.head(10))
copy

Explication :

data[['Flight', 'Delay', 'Airline']].groupby(['Flight', 'Airline']).count()
  • data[['Flight', 'Delay', 'Airline']] : colonnes utilisées, y compris celles servant au regroupement ;
  • .groupby(['Flight', 'Airline']) : ici, 'Flight' et 'Airline' sont les arguments de la fonction .groupby().

À noter : pour regrouper selon plusieurs colonnes, il faut les placer dans une liste ; l'ordre est déterminant. Ainsi, dans ce cas, si des lignes du jeu de données possèdent la même valeur dans la colonne 'Flight', elles appartiendront à un même groupe. Ensuite, à l'intérieur de ces groupes, la fonction identifie d'autres groupes pour les lignes ayant la même valeur dans la colonne 'Airline'. Enfin, grâce à la méthode .count() qui compte les lignes, la fonction calcule le nombre de lignes dans la colonne 'Delay' ayant la même valeur dans la colonne 'Airline' pour chaque groupe 'Flight'.

Tâche

Swipe to start coding

Votre tâche ici consiste à regrouper les données par l'aéroport de départ du vol, puis par le jour de la semaine. Calculez le temps moyen pour chaque groupe. Suivez l'algorithme pour réaliser la tâche :

  1. Regrouper les données :
    • Extraire les colonnes 'AirportFrom', 'DayOfWeek' et 'Time' de data (dans cet ordre) ;
    • Appliquer la méthode .groupby() sur les colonnes précédentes ;
    • Dans la méthode .groupby(), placer les colonnes 'AirportFrom' et 'DayOfWeek' ; l'ordre est important ;
    • Calculer la valeur moyenne de la colonne 'Time'.
  2. Afficher les 10 premières lignes de data_flights.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2
single

single

some-alt