Réinitialiser un MultiIndex avec reset_index()

Réinitialiser un MultiIndex avec la méthode reset_index() permet de convertir l’index multi-niveaux en colonnes régulières dans un DataFrame. Cela supprime l’index actuel, le réinitialise à un index standard (numéroté) et ajoute les niveaux de l’index comme nouvelles colonnes dans le DataFrame. Cela est particulièrement utile lorsqu’on veut revenir à un format plus simple ou si l’index multi-niveaux n’est plus nécessaire pour certaines opérations.

Fonctions :

  • df.reset_index()

    La méthode reset_index() permet de réinitialiser l'index d'un DataFrame, en particulier lorsqu'il utilise un MultiIndex. Lorsque vous utilisez reset_index(), l'index actuel, qu'il soit simple ou multi-niveaux, est transformé en colonnes normales, et un nouvel index par défaut (numéroté de 0 à n-1) est attribué aux lignes du DataFrame. Si le DataFrame a un MultiIndex, cette méthode convertira les différents niveaux du MultiIndex en colonnes individuelles, et le DataFrame retrouvera un index simple.

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Type Description Valeur par défaut
    level int, str, ou list Permet de spécifier un ou plusieurs niveaux du MultiIndex à réinitialiser (par défaut, tous les niveaux seront réinitialisés). None
    drop bool, optionnel Si True, les niveaux d'index réinitialisés seront supprimés et ne seront pas ajoutés comme colonnes dans le DataFrame. Par défaut, il est False. False
    inplace bool, optionnel Si True, la modification est effectuée directement sur le DataFrame sans en créer un nouveau. Par défaut, il est False. False

    Exemple de code :

    import pandas as pd
    
    # Création d'un DataFrame avec un MultiIndex
    index = pd.MultiIndex.from_tuples([('A', 1), ('A', 2), ('B', 1), ('B', 2)], names=['lettre', 'num'])
    df = pd.DataFrame({
        'valeur': [10, 20, 30, 40]
    }, index=index)
    
    # Réinitialisation de l'index
    df_reset = df.reset_index()
    
    # Afficher le DataFrame après réinitialisation de l'index
    print(df_reset)
    Résultat du code

    Explication du code :

    Création d'un DataFrame avec un MultiIndex

    index = pd.MultiIndex.from_tuples([('A', 1), ('A', 2), ('B', 1), ('B', 2)], names=['lettre', 'num'])

    On crée un MultiIndex en utilisant des tuples. Ici, les valeurs sont des combinaisons de lettres et de numéros, et les noms des niveaux de l'index sont définis comme 'lettre' et 'num'.

    df = pd.DataFrame({'valeur': [10, 20, 30, 40]}, index=index)

    On crée un DataFrame en utilisant le MultiIndex défini précédemment comme index, et une colonne 'valeur' contenant des données numériques.

    Réinitialisation de l'index

    df_reset = df.reset_index()

    La méthode reset_index() permet de réinitialiser l'index d'un DataFrame, transformant l'index multi-niveaux en colonnes normales. Cela est utile pour récupérer l'index comme des colonnes lorsque l'on souhaite manipuler ou afficher les données sans utiliser l'index.

    Affichage du DataFrame après réinitialisation de l'index

    print(df_reset)

    Cette ligne affiche le DataFrame après la réinitialisation de l'index. Les anciens niveaux de l'index sont maintenant des colonnes nommées 'lettre' et 'num'.