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
course content

Contenu du cours

Techniques Avancées dans Pandas

Techniques Avancées dans Pandas

1. Se Familiariser Avec l'Indexation et la Sélection de Données
2. Gestion des Conditions
3. Extraction de Données
4. Agrégation de Données
5. Prétraitement des Données

book
Regroupement par Plusieurs Colonnes

Ajoutons quelques informations sur la méthode .groupby(). Vous pouvez regrouper par plusieurs colonnes, mais l'ordre est crucial dans ce cas. Dans le chapitre précédent, nous avons regroupé les données par numéro de vol et compté le nombre de retards. Nous pouvons compliquer cette tâche en regroupant non seulement par la colonne 'Flight', mais aussi par la colonne 'Airline'. Rafraîchissez les informations sur le jeu de données, puis regardez cet exemple simple (la sortie contient seulement 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']] - colonnes avec lesquelles vous allez travailler, y compris les colonnes par lesquelles vous allez regrouper ;
  • .groupby(['Flight', 'Airline']) - ici, 'Flight' et 'Airline' sont des arguments de la fonction .groupby().

Faites attention, si vous voulez regrouper par plusieurs colonnes, mettez-les dans la liste - l'ordre est crucial. Donc, dans notre cas, si les lignes du jeu de données ont la même valeur dans la colonne 'Flight', elles appartiendront à un groupe. Ensuite, à l'intérieur de ces groupes, la fonction trouve d'autres groupes pour les lignes ayant la même valeur dans la colonne 'Airline'. Ensuite, grâce à la méthode .count() qui compte les lignes, notre fonction calculera le nombre de lignes dans la colonne 'Delay' qui ont la même valeur dans la colonne 'Airline' pour chaque groupe 'Flight'.

Tâche

Swipe to start coding

Votre tâche ici est de regrouper les données par l'aéroport d'où le vol a commencé, puis par le jour de la semaine. Calculez le temps moyen pour les groupes. Suivez l'algorithme pour gérer la tâche :

  1. Regroupez les données :
    • Extrayez les colonnes 'AirportFrom', 'DayOfWeek', et 'Time' de data (dans cet ordre);
    • Appliquez la méthode .groupby() aux colonnes précédentes;
    • Dans la méthode .groupby(), mettez les colonnes 'AirportFrom' et 'DayOfWeek'; l'ordre est crucial;
    • Calculez la valeur moyenne de la colonne 'Time'.
  2. Affichez 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
toggle bottom row

book
Regroupement par Plusieurs Colonnes

Ajoutons quelques informations sur la méthode .groupby(). Vous pouvez regrouper par plusieurs colonnes, mais l'ordre est crucial dans ce cas. Dans le chapitre précédent, nous avons regroupé les données par numéro de vol et compté le nombre de retards. Nous pouvons compliquer cette tâche en regroupant non seulement par la colonne 'Flight', mais aussi par la colonne 'Airline'. Rafraîchissez les informations sur le jeu de données, puis regardez cet exemple simple (la sortie contient seulement 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']] - colonnes avec lesquelles vous allez travailler, y compris les colonnes par lesquelles vous allez regrouper ;
  • .groupby(['Flight', 'Airline']) - ici, 'Flight' et 'Airline' sont des arguments de la fonction .groupby().

Faites attention, si vous voulez regrouper par plusieurs colonnes, mettez-les dans la liste - l'ordre est crucial. Donc, dans notre cas, si les lignes du jeu de données ont la même valeur dans la colonne 'Flight', elles appartiendront à un groupe. Ensuite, à l'intérieur de ces groupes, la fonction trouve d'autres groupes pour les lignes ayant la même valeur dans la colonne 'Airline'. Ensuite, grâce à la méthode .count() qui compte les lignes, notre fonction calculera le nombre de lignes dans la colonne 'Delay' qui ont la même valeur dans la colonne 'Airline' pour chaque groupe 'Flight'.

Tâche

Swipe to start coding

Votre tâche ici est de regrouper les données par l'aéroport d'où le vol a commencé, puis par le jour de la semaine. Calculez le temps moyen pour les groupes. Suivez l'algorithme pour gérer la tâche :

  1. Regroupez les données :
    • Extrayez les colonnes 'AirportFrom', 'DayOfWeek', et 'Time' de data (dans cet ordre);
    • Appliquez la méthode .groupby() aux colonnes précédentes;
    • Dans la méthode .groupby(), mettez les colonnes 'AirportFrom' et 'DayOfWeek'; l'ordre est crucial;
    • Calculez la valeur moyenne de la colonne 'Time'.
  2. Affichez 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
Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
We're sorry to hear that something went wrong. What happened?
some-alt