Trier par plusieurs colonnes (sort_values(by=['colonne1', 'colonne2']))
La méthode sort_values() permet de trier un DataFrame par plusieurs colonnes en spécifiant une liste de colonnes dans le paramètre by. Cela est utile lorsque vous souhaitez trier les données selon plusieurs critères dans un ordre spécifique. Par défaut, le tri se fait dans un ordre croissant, mais vous pouvez également contrôler l’ordre pour chaque colonne avec le paramètre ascending.
Fonctions :
-
sort_values(by=['colonne1', 'colonne2'])
La méthode sort_values(by=['colonne1', 'colonne2']) permet de trier les données par plusieurs colonnes à la fois. Vous pouvez spécifier une liste de colonnes sur lesquelles effectuer le tri, et les données seront triées d’abord par la première colonne, puis par la deuxième, et ainsi de suite. Cela permet de réaliser un tri complexe pour organiser les données de manière plus précise.
Importation :
import pandas as pd
Attributs :
Paramètre Description by
Liste des colonnes sur lesquelles effectuer le tri, dans l'ordre de priorité (ex : ['colonne1', 'colonne2']
).ascending
Liste de booléens indiquant l'ordre de tri pour chaque colonne. Par défaut, True
(ordre croissant). SiFalse
, l'ordre est décroissant.inplace
Booléen qui permet de modifier le DataFrame en place. Si True
, le DataFrame est modifié sans création d’une nouvelle copie. Par défaut,False
.Exemple de code :
import pandas as pd # Exemple de DataFrame data = { 'nom': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'], 'âge': [24, 30, 35, 30, 24], 'score': [88, 92, 75, 85, 95], 'ville': ['Paris', 'Lyon', 'Marseille', 'Paris', 'Lyon'] } df = pd.DataFrame(data) # Trier les valeurs par 'âge' (ascendant) puis par 'score' (descendant) df_trie = df.sort_values(by=['âge', 'score'], ascending=[True, False]) print("DataFrame trié par âge (ascendant) puis score (descendant) :") print(df_trie) # Trier en place par 'ville' puis 'nom' df.sort_values(by=['ville', 'nom'], ascending=[True, False], inplace=True) print("\nDataFrame trié par ville (ascendant) puis nom (descendant) en place :") print(df)
Explication du code :
- DataFrame : Un DataFrame est créé avec des données fictives comprenant les colonnes
nom
,âge
,score
, etville
. - Tri par plusieurs colonnes avec
sort_values()
:- La première opération trie les données par la colonne
âge
en ordre croissant (par défaut,ascending=True
), puis, si plusieurs lignes ont le même âge, elles seront triées par la colonnescore
en ordre décroissant (ascending=False
). - La deuxième opération trie le DataFrame en place par la colonne
ville
en ordre croissant (ascending=True
), et si deux villes sont identiques, il trie les valeurs de la colonnenom
en ordre décroissant (ascending=False
).
- La première opération trie les données par la colonne
Remarque :
- Liste de colonnes et ordre de tri : L'argument
by
accepte une liste de colonnes, permettant un tri par plusieurs critères. De plus, l'argumentascending
peut être soit un seul booléen (appliqué à toutes les colonnes), soit une liste de booléens, un pour chaque colonne. Cela permet de personnaliser l'ordre de tri pour chaque colonne. - Inplace : L'argument
inplace=True
modifie directement le DataFrame sans créer de copie.
- DataFrame : Un DataFrame est créé avec des données fictives comprenant les colonnes