Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Groupement Compliqué | 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
Groupement Compliqué

Il arrive parfois que nous ne soyons pas satisfaits des fonctions intégrées de pandas, comme .mean() ou .min() lors du regroupement.

Regardez la colonne 'Length'; ici, nous avons la durée du vol en minutes. Imaginez que nous voulons calculer le temps maximum en heures pour les éléments ayant la même valeur dans la colonne 'Flight' puis dans celle 'Airline'. Pour ce faire, nous pouvons calculer la valeur maximale de la colonne 'Length' pour chaque clé de groupe, puis la diviser par 60. Regardez l'exemple et l'explication ci-dessous.

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', 'Airline', 'Length']].groupby(['Flight', 'Airline']).apply(lambda x: x['Length'].max()/60) print(data_flights.head(10))
copy

Explication :

Nous avons rendu l'exemple des chapitres précédents un peu plus compliqué, donc avec le regroupement de données, tout est pareil ; passons à la méthode .apply().

  • .apply() - elle aide à appliquer une fonction spécifique aux colonnes nécessaires ;
  • dans la fonction lambda, x est l'argument et x['Length'].max()/60 est l'expression. Ainsi, la fonction trouve la valeur maximale pour chaque clé de groupe et divise la valeur agrégée par 60.
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 minimum de la somme des colonnes des groupes 'Length' et 'Time' pour déterminer combien de temps le vol avec retard peut prendre. Suivez l'algorithme pour gérer la tâche :

Regrouper les données :

  • Stockez la liste des colonnes 'AirportFrom', 'Airline', 'Time', et 'Length' (dans cet ordre) dans la variable columns;
  • Extrayez columns de data;
  • L'ordre est crucial dans la méthode .groupby(), mettez les colonnes 'AirportFrom' et 'Airline' dans cet ordre;
  • Appliquez la fonction aux valeurs de l'ensemble de données ayant les mêmes clés de groupe;
  • Calculez la somme de deux colonnes : 'Length' et 'Time'. Ensuite, trouvez leur minimum.

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 3
toggle bottom row

book
Groupement Compliqué

Il arrive parfois que nous ne soyons pas satisfaits des fonctions intégrées de pandas, comme .mean() ou .min() lors du regroupement.

Regardez la colonne 'Length'; ici, nous avons la durée du vol en minutes. Imaginez que nous voulons calculer le temps maximum en heures pour les éléments ayant la même valeur dans la colonne 'Flight' puis dans celle 'Airline'. Pour ce faire, nous pouvons calculer la valeur maximale de la colonne 'Length' pour chaque clé de groupe, puis la diviser par 60. Regardez l'exemple et l'explication ci-dessous.

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', 'Airline', 'Length']].groupby(['Flight', 'Airline']).apply(lambda x: x['Length'].max()/60) print(data_flights.head(10))
copy

Explication :

Nous avons rendu l'exemple des chapitres précédents un peu plus compliqué, donc avec le regroupement de données, tout est pareil ; passons à la méthode .apply().

  • .apply() - elle aide à appliquer une fonction spécifique aux colonnes nécessaires ;
  • dans la fonction lambda, x est l'argument et x['Length'].max()/60 est l'expression. Ainsi, la fonction trouve la valeur maximale pour chaque clé de groupe et divise la valeur agrégée par 60.
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 minimum de la somme des colonnes des groupes 'Length' et 'Time' pour déterminer combien de temps le vol avec retard peut prendre. Suivez l'algorithme pour gérer la tâche :

Regrouper les données :

  • Stockez la liste des colonnes 'AirportFrom', 'Airline', 'Time', et 'Length' (dans cet ordre) dans la variable columns;
  • Extrayez columns de data;
  • L'ordre est crucial dans la méthode .groupby(), mettez les colonnes 'AirportFrom' et 'Airline' dans cet ordre;
  • Appliquez la fonction aux valeurs de l'ensemble de données ayant les mêmes clés de groupe;
  • Calculez la somme de deux colonnes : 'Length' et 'Time'. Ensuite, trouvez leur minimum.

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 3
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