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

bookRegroupement Complexe

Il arrive parfois que les fonctions intégrées de pandas, telles que .mean() ou .min(), ne suffisent pas lors de l'utilisation du groupement.

Considérez la colonne 'Length' ; ici, la durée du vol est indiquée en minutes. Supposons que l'on souhaite calculer la durée maximale en heures pour les éléments ayant la même valeur dans la colonne 'Flight', puis dans la colonne 'Airline'. Pour cela, il est possible de calculer la valeur maximale de la colonne 'Length' pour chaque clé de groupe, puis de la diviser par 60. Consultez 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 complexe, mais avec le regroupement des données, tout reste identique ; passons à la méthode .apply().

.apply(lambda x: x['Length'].max()/60)
  • .apply() – permet d'appliquer une fonction spécifique aux colonnes souhaitées ;
  • dans la fonction lambda, x est l'argument et x['Length'].max()/60 est l'expression. Ainsi, la fonction recherche 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 consiste à regrouper les données par l'aéroport de départ du vol, puis par le jour de la semaine. Calculez la durée minimale du total des colonnes du groupe 'Length' et 'Time' afin de déterminer combien de temps un vol avec retard peut durer. Suivez l'algorithme pour réaliser cette tâche :

Regroupement des 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() ; placez 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 des deux colonnes : 'Length' et 'Time'. Ensuite, trouvez leur minimum.

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 3
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 what the output of this code will look like?

How does the `.apply()` method differ from using `.agg()` in this context?

Can you show how to reset the index of the resulting DataFrame?

close

Awesome!

Completion rate improved to 3.03

bookRegroupement Complexe

Glissez pour afficher le menu

Il arrive parfois que les fonctions intégrées de pandas, telles que .mean() ou .min(), ne suffisent pas lors de l'utilisation du groupement.

Considérez la colonne 'Length' ; ici, la durée du vol est indiquée en minutes. Supposons que l'on souhaite calculer la durée maximale en heures pour les éléments ayant la même valeur dans la colonne 'Flight', puis dans la colonne 'Airline'. Pour cela, il est possible de calculer la valeur maximale de la colonne 'Length' pour chaque clé de groupe, puis de la diviser par 60. Consultez 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 complexe, mais avec le regroupement des données, tout reste identique ; passons à la méthode .apply().

.apply(lambda x: x['Length'].max()/60)
  • .apply() – permet d'appliquer une fonction spécifique aux colonnes souhaitées ;
  • dans la fonction lambda, x est l'argument et x['Length'].max()/60 est l'expression. Ainsi, la fonction recherche 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 consiste à regrouper les données par l'aéroport de départ du vol, puis par le jour de la semaine. Calculez la durée minimale du total des colonnes du groupe 'Length' et 'Time' afin de déterminer combien de temps un vol avec retard peut durer. Suivez l'algorithme pour réaliser cette tâche :

Regroupement des 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() ; placez 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 des 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
single

single

some-alt