Utilisation des sort_index() pour trier un DataFrame avec MultiIndex
La méthode sort_index() permet de trier un DataFrame qui utilise un MultiIndex. Elle trie les lignes du DataFrame selon les niveaux d’index, dans l’ordre croissant ou décroissant. Par défaut, elle trie en fonction de tous les niveaux de l’index, mais il est également possible de spécifier des niveaux d’index spécifiques sur lesquels appliquer le tri.
Fonctions :
-
df.sort_index()
La méthode sort_index() permet de trier un DataFrame en fonction de ses index. Dans le cas d'un DataFrame avec un MultiIndex, cette méthode trie les données selon l'ordre des niveaux d'index, respectant ainsi la hiérarchie du MultiIndex. Vous pouvez trier les données dans l'ordre croissant ou décroissant, et cette méthode vous permet également de spécifier sur quels niveaux d'index vous souhaitez opérer. Par défaut, elle trie par tous les niveaux du MultiIndex dans l'ordre croissant.
Importation :
import pandas as pd
Attributs :
Paramètre Type Description Valeur par défaut axis
int, optionnel L'axe à trier, 0
pour les lignes (par défaut) ou1
pour les colonnes.0
level
str ou int, optionnel Niveau ou niveaux d'index à utiliser pour trier. Vous pouvez spécifier un ou plusieurs niveaux (par nom ou index). None
ascending
bool, optionnel Détermine si le tri est effectué dans l'ordre croissant ( True
) ou décroissant (False
). Par défaut, c'estTrue
.True
inplace
bool, optionnel Si True
, modifie le DataFrame en place. Sinon, renvoie une copie triée du DataFrame. Par défaut, c'estFalse
.False
Exemple de code :
import pandas as pd # Création d'un DataFrame avec un MultiIndex index = pd.MultiIndex.from_tuples([('A', 2), ('A', 1), ('B', 2), ('B', 1)], names=['lettre', 'num']) df = pd.DataFrame({ 'valeur': [10, 20, 30, 40] }, index=index) # Trier le DataFrame par l'index df_sorted = df.sort_index() # Afficher le résultat print(df_sorted)
Explication du code :
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
pour simplifier son utilisation dans le code.Création d'un DataFrame avec un MultiIndex
Le code crée un DataFrame nommé
df
avec une colonne'valeur'
contenant les données [10, 20, 30, 40]. L'index du DataFrame est un MultiIndex, créé à partir de tuples viapd.MultiIndex.from_tuples()
. Ces tuples sont définis comme [('A', 2), ('A', 1), ('B', 2), ('B', 1)] et les noms des niveaux de l'index sont spécifiés parnames=['lettre', 'num']
.Trier le DataFrame par l'index
La méthode
sort_index()
permet de trier un DataFrame par son index. Ici,df.sort_index()
trie le DataFramedf
par les valeurs de l'index, en respectant l'ordre des niveaux de l'index (d'abord'lettre'
, puis'num'
).df_sorted = df.sort_index()
crée un nouveau DataFrame,df_sorted
, où les lignes sont triées selon l'index du DataFrame d'origine.Afficher le résultat
La fonction
print()
affiche le contenu dedf_sorted
, montrant le DataFrame trié par son index.