Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Regroupement Complexe | Agrégation des données
Manipulation de Données avec Pandas
Section 4. Chapitre 3
single

single

bookRegroupement Complexe

Glissez pour afficher le menu

Il arrive parfois que les fonctions intégrées de pandas, comme .mean() ou .min(), ne suffisent pas lors de l'agrégation de groupes.

Regardez la colonne 'Length' ; ici, nous avons la durée du vol en minutes. Imaginons que nous souhaitions calculer le temps maximum en heures pour les éléments ayant la même valeur dans la colonne 'Flight', puis dans la colonne 'Airline'. Pour cela, nous pouvons calculer la valeur maximale de la colonne 'Length' pour chaque clé de groupe, puis 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, donc 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 trouve la valeur maximale pour chaque clé de groupe et divise la valeur agrégée par 60.
Tâche

Glissez pour commencer à coder

Votre tâche ici consiste à analyser les durées de vol en tenant compte de l'aéroport, de la compagnie aérienne et du jour de la semaine. Vous allez regrouper les données afin de déterminer le temps de vol total minimum (la somme de 'Length' et 'Time') pour chaque combinaison unique d'aéroport de départ, de compagnie aérienne et de jour de la semaine.

Suivez l'algorithme étape par étape :

  1. Stocker la liste des colonnes 'AirportFrom', 'Airline', 'DayOfWeek', 'Time' et 'Length' (dans cet ordre) dans la variable columns.
  2. Extraire ces colonnes de data en utilisant la notation par crochets (data[columns]).
  3. Regrouper l'ensemble de données par 'AirportFrom', 'Airline' et 'DayOfWeek' (dans cet ordre précis).
  4. À l'intérieur de la méthode .groupby(), appliquer la fonction .apply() pour calculer la somme des colonnes 'Length' et 'Time' pour chaque groupe, puis trouver le minimum de cette somme.
  5. Affecter le résultat à une variable nommée data_flights.
  6. Afficher les 10 premières lignes de la série résultante à l'aide de .head(10).

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

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

some-alt