Accéder au contenu principal

Pandas Sort Values : Un mode d'emploi complet

Utilisez sort_values() pour réorganiser les lignes en fonction des valeurs des colonnes. Appliquez la fonction sort_index() pour réorganiser les lignes en fonction de l'index du DataFrame. Combinez les deux méthodes pour explorer vos données sous différents angles.
Actualisé 16 janv. 2025  · 4 min lire

Il est souvent plus facile de trouver des données intéressantes dans un DataFrame si vous modifiez l'ordre des lignes. Vous pouvez trier les lignes en passant un nom de colonne à .sort_values().

Dans les cas où des lignes ont la même valeur (ce qui est fréquent si vous triez sur une variable catégorielle), vous pouvez souhaiter briser les égalités en triant sur une autre colonne. Vous pouvez ainsi trier sur plusieurs colonnes en passant une liste de noms de colonnes.

Exemple de tri de colonnes par Pandas

Utiliser Pandas pour trier des colonnes

Vous pouvez modifier l'ordre des lignes en les triant de manière à ce que les données les plus intéressantes se trouvent en haut du DataFrame.

Trier les colonnes en fonction d'une seule variable

Par exemple, lorsque nous appliquons sort_values() à la colonne weight_kg du DataFrame chiens, nous obtenons le chien le plus léger en haut, Stella le Chihuahua, et le chien le plus lourd en bas, Bernie le Saint Bernard.

dogs.sort_values("weight_kg")
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
0    Bella     Labrador  Brown         56         24    2013-07-01
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

Si vous donnez la valeur False à l'argument ascending, les données seront triées dans l'autre sens, du chien le plus lourd au chien le plus léger.

dogs.sort_values("weight_kg", ascending=False)
      name        breed  color  height_cm  weight_kg date_of_birth
6   Bernie  St. Bernard  White         77         74    2018-02-27
4      Max     Labrador  Black         59         29    2017-01-20
0    Bella     Labrador  Brown         56         24    2013-07-01
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
5   Stella    Chihuahua    Tan         18          2    2015-04-20

Trier les colonnes en fonction de plusieurs variables

Nous pouvons trier sur plusieurs variables en passant une liste de noms de colonnes à sort_values. Ici, nous trions d'abord par poids, puis par taille. Maintenant, Charlie, Lucy et Bella sont classés du plus petit au plus grand, même s'ils pèsent tous le même poids.

dogs.sort_values(["weight_kg", "height_cm"])
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
0    Bella     Labrador  Brown         56         24    2013-07-01
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

Pour modifier la direction dans laquelle les valeurs sont triées, passez une liste à l'argument ascendant pour spécifier la direction dans laquelle le tri doit être effectué pour chaque variable. Maintenant, Charlie, Lucy et Bella sont classés du plus grand au plus petit.

dogs.sort_values(["weight_kg", "height_cm"], ascending=[True, False])
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
0    Bella     Labrador  Brown         56         24    2013-07-01
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
1  Charlie       Poodle  Black         43         24    2016-09-16
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

Utiliser les Pandas pour trier les lignes

Il peut arriver que vous souhaitiez réorganiser les lignes en fonction de leurs étiquettes (c'est-à-dire l'index du DataFrame) plutôt qu'en fonction de colonnes spécifiques. Dans ce cas, vous pouvez utiliser la méthode sort_index() au lieu de sort_values(). N'oubliez pas que, par défaut, sort_index() trie vos lignes dans l'ordre croissant de leur index :

# Sort rows by their index (ascending)
dogs_sorted = dogs.sort_index()
print(dogs_sorted)

Si vous souhaitez trier les lignes par ordre décroissant, passez simplement ascending=False:

# Sort rows by their index (descending)
dogs_sorted_desc = dogs.sort_index(ascending=False)
print(dogs_sorted_desc)

De même, si vous disposez d'un index multi-niveaux (hiérarchique), sort_index() peut également le gérer en triant plusieurs niveaux. Il suffit de passer une liste aux paramètres level ou ascending (tout comme nous avons dû passer une liste pour sort_values()) :

# Sort rows by multiple levels of a multi-level index
dogs_sorted_multi = dogs.sort_index(level=[0, 1], ascending=[True, False])
print(dogs_sorted_multi)
 

Pandas Sort Values Interactive Example

Dans l'exemple suivant, vous allez trier homelessness par nombre de sans-abri, du plus petit au plus grand, et l'enregistrer sous homelessness_ind. Enfin, vous imprimerez la tête du DataFrame trié.

# Sort homelessness by individuals
homelessness_ind = homelessness.sort_values("individuals")

# Print the top few rows
print(homelessness_ind.head())

Lorsque nous exécutons le code ci-dessus, nous obtenons le résultat suivant :

                region         state  individuals  family_members  state_pop
50            Mountain       Wyoming        434.0           205.0     577601
34  West North Central  North Dakota        467.0            75.0     758080
7       South Atlantic      Delaware        708.0           374.0     965479
39         New England  Rhode Island        747.0           354.0    1058287
45         New England       Vermont        780.0           511.0     624358

Essayez-le vous-même.

Pour en savoir plus sur le tri et le sous-ensemble des données, veuillez consulter cette vidéo tirée de notre cours Manipulation de données avec pandas.

Ce contenu est extrait du cours Data Manipulation with pandas de DataCamp par Maggie Matsui et Richie Cotton.

Poursuite de l'apprentissage

Nous avons appris dans cet article, entre autres, quand utiliser sort_index() ou sort_values(): Utilisez sort_values() lorsque vous souhaitez réorganiser les lignes en fonction des valeurs des colonnes; utilisez sort_index() lorsque vous souhaitez réorganiser les lignes en fonction des étiquettes des lignes (l'index du DataFrame).

Nous avons beaucoup d'autres tutoriels utiles sur les pandas pour que vous puissiez continuer à apprendre, y compris le Guide ultime des pandas pour les débutants, pour que vous puissiez continuer à vous entraîner. Nous avons également d'autres tutoriels spécifiques pour des problèmes courants, notamment Comment importer des données CSV dans Pandas et Comment joindre des DataFrames dans Pandas. N'oubliez pas non plus de suivre notre cursus de compétences en programmation Python pour continuer à améliorer vos compétences. 

Sujets

Suivez des cours de Python avec DataCamp

Cours

Introduction à Python

4 h
6.8M
Apprenez les bases de l’analyse de données avec Python en quatre heures et explorez ses principaux packages.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Contenus associés

Tutoriel

Comment trier un dictionnaire par valeur en Python

Découvrez des méthodes efficaces pour trier un dictionnaire par valeurs en Python. Découvrez le tri par ordre croissant et décroissant, ainsi que des conseils supplémentaires pour le tri par clé.
Neetika Khandelwal's photo

Neetika Khandelwal

Tutoriel

Méthode index() de Python expliquée à l'aide d'exemples

Découvrez comment utiliser la fonction index() de Python pour trouver la position d'éléments dans des listes.
Sejal Jaiswal's photo

Sejal Jaiswal

Tutoriel

Tutoriel sur les boucles « for » en Python

Apprenez à implémenter des boucles « for » en Python pour itérer une séquence ou les lignes et colonnes d'un DataFrame pandas.
Aditya Sharma's photo

Aditya Sharma

Tutoriel

Tutoriel et exemples sur les fonctions et méthodes des listes Python

Découvrez les fonctions et méthodes des listes Python. Veuillez suivre les exemples de code pour list() et d'autres fonctions et méthodes Python dès maintenant.
Abid Ali Awan's photo

Abid Ali Awan

Tutoriel

Tableaux Python

Tableaux Python avec exemples de code. Découvrez comment créer et imprimer des tableaux à l'aide de Python NumPy dès aujourd'hui.
DataCamp Team's photo

DataCamp Team

Tutoriel

Tutoriel sur les méthodes .append() et .extend() de Python

Apprenez à utiliser les méthodes .append() et .extend() pour ajouter des éléments à une liste.
DataCamp Team's photo

DataCamp Team

Voir plusVoir plus