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 de lecture

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

Certification disponible

cours

Introduction à Python

4 hr
5.9M
Maîtrisez les bases de l'analyse de données avec Python en seulement quatre heures. Ce cours en ligne vous présentera l'interface Python et explorera les packages populaires.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow
Apparenté

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

See MoreSee More