Trier par plusieurs colonnes
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 :
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
, pour faciliter la manipulation de données tabulaires.Création d’un DataFrame
Le dictionnaire
data
contient les données de cinq colonnes :nom
,âge
,score
etville
. Ce dictionnaire est ensuite converti en un DataFrame viapd.DataFrame(data)
, et assigné à la variabledf
.Trier par âge (ascendant) puis score (descendant)
La méthode
sort_values()
permet de trier le DataFrame selon plusieurs colonnes en même temps. Le paramètreby=['âge', 'score']
spécifie que le tri doit se faire d'abord par la colonneâge
(ascendant), puis par la colonnescore
(descendant).ascending=[True, False]
indique que le tri sur la colonneâge
sera ascendant (par défaut), et le tri surscore
sera descendant (le plus grand score en premier).df_trie = df.sort_values(by=['âge', 'score'], ascending=[True, False])
trie donc le DataFrame selon ces critères et crée un nouveau DataFrame nommédf_trie
.Trier en place par ville puis nom
Le tri en place est effectué avec le paramètre
inplace=True
, ce qui signifie que le DataFrame original sera modifié.df.sort_values(by=['ville', 'nom'], ascending=[True, False], inplace=True)
trie le DataFrame selon la colonneville
(ascendant) et ensuite selon la colonnenom
(descendant), directement dans le DataFramedf
.