Contenu du cours
Techniques Avancées dans Pandas
Techniques Avancées dans Pandas
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) :
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))
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'
.
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 :
- Regroupez les données :
- Extrayez les colonnes
'AirportFrom'
,'DayOfWeek'
, et'Time'
dedata
(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'
.
- Extrayez les colonnes
- Affichez les
10
premières lignes dedata_flights
.
Solution
Merci pour vos commentaires !
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) :
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))
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'
.
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 :
- Regroupez les données :
- Extrayez les colonnes
'AirportFrom'
,'DayOfWeek'
, et'Time'
dedata
(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'
.
- Extrayez les colonnes
- Affichez les
10
premières lignes dedata_flights
.
Solution
Merci pour vos commentaires !