Trier un DataFrame en fonction de l’index (sort_index())

La fonction sort_index() permet de trier un DataFrame en fonction de ses index, que ce soit par ordre croissant ou décroissant. Elle est utile lorsqu’on souhaite organiser les données selon leur étiquette d’index plutôt que par une colonne spécifique. Le paramètre ascending permet de choisir l’ordre de tri : True pour croissant et False pour décroissant.

Fonctions :

  • sort_index()

    La méthode sort_index() permet de trier un DataFrame selon l'index. Par défaut, le tri s’effectue en ordre croissant, mais vous pouvez aussi spécifier un ordre décroissant ou d’autres critères. Cette fonction est utile lorsque vous souhaitez réorganiser les données selon l'ordre de l'index ou si l'index ne suit pas un ordre spécifique.

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Description
    axis Spécifie l'axe sur lequel trier : 0 pour les lignes (par défaut), 1 pour les colonnes.
    ascending Booléen ou liste de booléens pour définir l'ordre de tri. Par défaut, True (croissant). Si False, l'ordre sera 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.
    level Permet de spécifier un niveau d'index (utile si l'index est multi-niveau).

    Exemple de code :

    import pandas as pd
    
    # Exemple de DataFrame avec un index personnalisé
    data = {
        'nom': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'âge': [24, 30, 35, 30, 24],
        'score': [88, 92, 75, 85, 95]
    }
    index = ['a', 'b', 'c', 'd', 'e']
    df = pd.DataFrame(data, index=index)
    
    # Trier par index en ordre croissant (par défaut)
    df_trie_asc = df.sort_index(ascending=True)
    print("DataFrame trié par index (ordre croissant) :")
    print(df_trie_asc)
    
    # Trier par index en ordre décroissant
    df_trie_desc = df.sort_index(ascending=False)
    print("\nDataFrame trié par index (ordre décroissant) :")
    print(df_trie_desc)
    
    # Trier en place par index en ordre croissant
    df.sort_index(ascending=True, inplace=True)
    print("\nDataFrame trié par index (en place, ordre croissant) :")
    print(df)

    Explication du code :

    • DataFrame : Un DataFrame est créé avec des données fictives comprenant les colonnes nom, âge, et score, et un index personnalisé ['a', 'b', 'c', 'd', 'e'].
    • Tri par index avec sort_index() :
      • Le premier exemple trie les lignes du DataFrame par l'index en ordre croissant (par défaut, ascending=True).
      • Le deuxième exemple trie le DataFrame par l'index en ordre décroissant en utilisant ascending=False.
      • Le troisième exemple trie en place, ce qui modifie directement le DataFrame original.

    Remarque :

    • Utilisation avec un index multi-niveau : Si votre DataFrame possède un index multi-niveau (c'est-à-dire plusieurs niveaux d'index), vous pouvez utiliser l'argument level pour trier spécifiquement selon l'un des niveaux d'index.
    • Inplace : L'argument inplace=True permet de modifier le DataFrame directement sans avoir besoin de créer une nouvelle copie. Cela peut être utile si vous souhaitez économiser de la mémoire ou éviter de créer une variable supplémentaire.