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 pdAttributs :
Paramètre Type Description Valeur par défaut axisint, optionnel L'axe à trier, 0pour les lignes (par défaut) ou1pour les colonnes.0levelstr ou int, optionnel Niveau ou niveaux d'index à utiliser pour trier. Vous pouvez spécifier un ou plusieurs niveaux (par nom ou index). Noneascendingbool, optionnel Détermine si le tri est effectué dans l'ordre croissant ( True) ou décroissant (False). Par défaut, c'estTrue.Trueinplacebool, optionnel Si True, modifie le DataFrame en place. Sinon, renvoie une copie triée du DataFrame. Par défaut, c'estFalse.FalseExemple 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 pdimporte la bibliothèque pandas, renommée ici enpdpour simplifier son utilisation dans le code.Création d'un DataFrame avec un MultiIndex
Le code crée un DataFrame nommé
dfavec 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 DataFramedfpar 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.