Introduction
Bienvenue dans le laboratoire de tri de données avec Pandas ! Le tri est une opération fondamentale en analyse de données. Il vous aide à organiser vos données, les rendant plus faciles à lire, à comprendre et à analyser. Que vous ayez besoin de trouver les valeurs les plus élevées ou les plus basses, ou simplement d'organiser les données dans un ordre logique, Pandas fournit des outils puissants et flexibles pour accomplir cette tâche.
Dans ce laboratoire, vous apprendrez à utiliser les principales méthodes de tri dans Pandas :
sort_values(): Pour trier un DataFrame par les valeurs d'une ou plusieurs colonnes.sort_index(): Pour trier un DataFrame par son index.reset_index(): Pour réinitialiser l'index après une opération de tri.
À la fin de ce laboratoire, vous maîtriserez l'organisation de vos données pour répondre à vos besoins analytiques. Commençons !
Trier un DataFrame par une seule colonne en utilisant sort_values
Dans cette étape, vous apprendrez l'opération de tri la plus courante : trier un DataFrame par les valeurs d'une seule colonne. Nous utiliserons la méthode sort_values() pour cela. Le paramètre by est utilisé pour spécifier la colonne par laquelle vous souhaitez trier.
Tout d'abord, ouvrez le fichier main.py situé dans le répertoire ~/project à l'aide de l'explorateur de fichiers sur la gauche. Ce fichier a été pré-rempli avec un DataFrame d'exemple.
Ajoutez maintenant le code suivant à la fin de main.py pour trier le DataFrame par la colonne Age.
## --- Étape 1 : Trier par une seule colonne ---
df_sorted_by_age = df.sort_values(by='Age')
print("\nDataFrame trié par Age:")
print(df_sorted_by_age)
Votre fichier main.py complet devrait maintenant ressembler à ceci :
import pandas as pd
## Créer un DataFrame d'exemple pour nos exercices
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Age': [25, 22, 25, 28, 22],
'Score': [85, 91, 88, 79, 91]
}
df = pd.DataFrame(data)
print("DataFrame original:")
print(df)
## --- Étape 1 : Trier par une seule colonne ---
df_sorted_by_age = df.sort_values(by='Age')
print("\nDataFrame trié par Age:")
print(df_sorted_by_age)
Pour voir le résultat, exécutez le script depuis le terminal.
python3 main.py
Vous verrez le DataFrame original suivi du nouveau DataFrame trié par âge dans l'ordre croissant.
Sortie attendue :
DataFrame original:
Name Age Score
0 Alice 25 85
1 Bob 22 91
2 Charlie 25 88
3 David 28 79
4 Eve 22 91
DataFrame trié par Age:
Name Age Score
1 Bob 22 91
4 Eve 22 91
0 Alice 25 85
2 Charlie 25 88
3 David 28 79
Trier par plusieurs colonnes dans l'ordre croissant
Dans cette étape, vous apprendrez à trier un DataFrame en fonction de plusieurs colonnes. Ceci est utile lorsque vous avez des égalités dans la première colonne de tri et que vous souhaitez appliquer un critère de tri secondaire.
Pour trier par plusieurs colonnes, vous passez une liste de noms de colonnes au paramètre by de la méthode sort_values(). Pandas triera par la première colonne de la liste, puis utilisera la deuxième colonne pour résoudre les égalités, et ainsi de suite.
Tétrons d'abord notre DataFrame par Age, puis par Score. Ajoutez le code suivant à la fin de votre fichier main.py.
## --- Étape 2 : Trier par plusieurs colonnes ---
df_sorted_multiple = df.sort_values(by=['Age', 'Score'])
print("\nDataFrame trié par Age puis par Score:")
print(df_sorted_multiple)
Exécutez à nouveau le script pour voir les changements.
python3 main.py
Vous verrez une nouvelle section dans la sortie. Remarquez comment les deux lignes avec Age 22 sont maintenant triées par Score (Bob avec 91 vient après Eve avec 91, car leur ordre est stable). Il en va de même pour les lignes avec Age 25.
Sortie attendue (montrant uniquement la nouvelle partie) :
...
DataFrame trié par Age puis par Score:
Name Age Score
1 Bob 22 91
4 Eve 22 91
0 Alice 25 85
2 Charlie 25 88
3 David 28 79
Trier par ordre décroissant avec ascending=False
Dans cette étape, vous apprendrez à contrôler la direction du tri. Par défaut, sort_values() trie dans l'ordre croissant. Vous pouvez modifier cela en utilisant le paramètre ascending.
- Pour trier dans l'ordre décroissant, définissez
ascending=False. - Lors du tri par plusieurs colonnes, vous pouvez spécifier un ordre différent pour chaque colonne en passant une liste de booléens, par exemple,
ascending=[True, False].
Tétrons le DataFrame par Age dans l'ordre croissant et par Score dans l'ordre décroissant. Cela nous aidera à trouver le meilleur score dans chaque groupe d'âge. Ajoutez le code suivant à la fin de main.py.
## --- Étape 3 : Trier en ordre décroissant et mixte ---
df_sorted_mixed = df.sort_values(by=['Age', 'Score'], ascending=[True, False])
print("\nDataFrame trié par Age (asc) et Score (desc):")
print(df_sorted_mixed)
Exécutez le script pour observer le résultat.
python3 main.py
Dans la sortie, regardez les lignes pour l'âge 22. Eve et Bob ont tous deux un score de 91, donc leur ordre pourrait ne pas changer. Pour l'âge 25, Charlie (Score 88) apparaît maintenant avant Alice (Score 85) car nous avons trié les scores dans l'ordre décroissant.
Sortie attendue (montrant uniquement la nouvelle partie) :
...
DataFrame trié par Age (asc) et Score (desc):
Name Age Score
1 Bob 22 91
4 Eve 22 91
2 Charlie 25 88
0 Alice 25 85
3 David 28 79
Trier l'index avec sort_index
Dans cette étape, vous apprendrez à trier un DataFrame par son index. Après avoir effectué une opération sort_values(), l'index du DataFrame est mélangé. Vous pouvez le constater dans les sorties précédentes (par exemple, l'index est 1, 4, 2, 0, 3).
La méthode sort_index() vous permet de trier le DataFrame en fonction des étiquettes de son index, restaurant ainsi l'ordre d'origine si l'index était une simple plage.
Prenons le résultat de l'étape précédente (df_sorted_mixed) et trions-le par son index. Ajoutez le code suivant à la fin de main.py.
## --- Étape 4 : Trier par index ---
## Le résultat précédent (df_sorted_mixed) a un index mélangé. Trions-le par index.
df_reordered_by_index = df_sorted_mixed.sort_index()
print("\nDataFrame trié à nouveau par index:")
print(df_reordered_by_index)
Exécutez le script.
python3 main.py
Vous verrez que le DataFrame est maintenant trié par son index (0, 1, 2, 3, 4), ce qui le restaure effectivement à son ordre de ligne d'origine.
Sortie attendue (montrant uniquement la nouvelle partie) :
...
DataFrame trié à nouveau par index:
Name Age Score
0 Alice 25 85
1 Bob 22 91
2 Charlie 25 88
3 David 28 79
4 Eve 22 91
Réinitialiser l'index après le tri avec reset_index
Dans cette dernière étape, vous apprendrez à réinitialiser l'index d'un DataFrame. Après le tri, l'index n'est plus une plage propre et séquentielle à partir de 0. Bien que sort_index() puisse restaurer l'ordre d'origine, vous souhaitez parfois conserver le nouvel ordre trié tout en ayant un index frais et séquentiel.
La méthode reset_index() est parfaite pour cela. Elle remplace l'index actuel par un index entier par défaut (0, 1, 2, ...). Il est courant d'utiliser le paramètre drop=True pour supprimer complètement l'ancien index. Si vous n'utilisez pas drop=True, l'ancien index sera ajouté comme une nouvelle colonne nommée index.
Prenons l'un de nos DataFrames triés (df_sorted_mixed) et réinitialisons son index. Ajoutez le dernier morceau de code à main.py.
## --- Étape 5 : Réinitialiser l'index après le tri ---
## Prenons un DataFrame trié et donnons-lui un nouvel index propre
df_with_reset_index = df_sorted_mixed.reset_index(drop=True)
print("\nDataFrame trié avec index réinitialisé:")
print(df_with_reset_index)
Exécutez le script une dernière fois.
python3 main.py
Observez la sortie finale. Le DataFrame est toujours trié par Age (asc) et Score (desc), mais l'index est maintenant une séquence propre de 0 à 4.
Sortie attendue (montrant uniquement la nouvelle partie) :
...
DataFrame trié avec index réinitialisé:
Name Age Score
0 Bob 22 91
1 Eve 22 91
2 Charlie 25 88
3 Alice 25 85
4 David 28 79
Résumé
Félicitations pour avoir terminé le laboratoire de tri de données Pandas ! Vous avez acquis les compétences essentielles pour organiser et ordonner vos données au sein d'un DataFrame Pandas.
Dans ce laboratoire, vous avez pratiqué :
- Le tri par une seule colonne en utilisant
sort_values(by='nom_colonne'). - Le tri par plusieurs colonnes en passant une liste au paramètre
by. - Le contrôle de la direction du tri avec le paramètre
ascending. - La restauration de l'ordre d'origine en triant l'index avec
sort_index(). - La création d'un nouvel index propre sur un DataFrame trié en utilisant
reset_index(drop=True).
Ces techniques de tri sont fondamentales pour le nettoyage, l'exploration et la préparation des données pour des analyses et visualisations plus avancées. Continuez à pratiquer ces compétences pour devenir plus efficace dans votre parcours en science des données.



