Trier un DataFrame en fonction de l’index

Dans un tableau de données, l’index joue un rôle clé en identifiant de manière unique chaque ligne. Trier un DataFrame selon cet index permet de réorganiser les données dans un ordre spécifique basé sur ces identifiants, facilitant ainsi la recherche, la comparaison ou l’alignement avec d’autres jeux de données. Ce tri peut être effectué dans l’ordre croissant ou décroissant, selon les besoins de l’analyse.

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.