Trier un DataFrame en fonction de l’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)
    Résultat du code

    Explication du code :

    import pandas as pd importe la bibliothèque pandas, renommée ici en pd pour simplifier son utilisation dans le code.

    Exemple de DataFrame avec un index personnalisé

    Le dictionnaire data contient trois clés : 'nom', 'âge' et 'score', chacune associée à une liste de valeurs. Ce dictionnaire est utilisé pour créer un DataFrame df, avec un index personnalisé défini par la liste index contenant les valeurs 'a', 'b', 'c', 'd' et 'e'.

    Trier par index en ordre croissant

    La méthode sort_index() permet de trier les lignes d'un DataFrame en fonction de l'index. En utilisant ascending=True, les lignes sont triées par ordre croissant de l'index, et le résultat est assigné à df_trie_asc.

    df_trie_asc = df.sort_index(ascending=True) trie donc le DataFrame par index en ordre croissant et le stocke dans une nouvelle variable df_trie_asc.

    Trier par index en ordre décroissant

    En utilisant ascending=False, la méthode sort_index() trie les lignes en fonction de l'index par ordre décroissant. Le résultat est assigné à df_trie_desc.

    df_trie_desc = df.sort_index(ascending=False) trie donc le DataFrame par index en ordre décroissant et le stocke dans une nouvelle variable df_trie_desc.

    Trier en place par index en ordre croissant

    Lorsque le paramètre inplace=True est utilisé, le tri se fait directement sur le DataFrame d'origine, modifiant ainsi son contenu sans créer de nouvelle variable. Dans ce cas, df.sort_index(ascending=True, inplace=True) trie le DataFrame par index en ordre croissant sans créer une copie du DataFrame trié.

    Enfin, print(df) affiche le DataFrame modifié en place.