Définir un MultiIndex sur un DataFrame avec set_index()

La méthode set_index() permet de définir un MultiIndex sur un DataFrame en spécifiant plusieurs colonnes comme index. Cela permet de structurer les données sur plusieurs niveaux d’indexation, ce qui est utile pour effectuer des opérations complexes comme le regroupement, le tri ou l’accès hiérarchisé aux données.

Fonctions :

  • df.set_index()

    La fonction set_index() de pandas permet de définir un ou plusieurs colonnes comme index d'un DataFrame. Lorsqu'on utilise plusieurs colonnes, elle crée un MultiIndex, ce qui signifie que le DataFrame sera indexé par plusieurs niveaux. Cela est particulièrement utile lorsque vous souhaitez effectuer des opérations de regroupement, de sélection ou de manipulation en utilisant des combinaisons de plusieurs colonnes. L'index peut être modifié directement dans le DataFrame en définissant l'option inplace=True, ou peut être retourné comme un nouveau DataFrame si cette option est omise (par défaut, inplace=False).

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Type Description Valeur par défaut
    keys list, set Liste ou ensemble de colonnes à utiliser comme index. None
    inplace bool Si True, modifie directement le DataFrame sans retourner de copie. Par défaut, False. False
    drop bool Si True, les colonnes utilisées pour l'index seront supprimées du DataFrame. Par défaut, True. True
    append bool Si True, ajoute les colonnes spécifiées à l'index existant au lieu de le remplacer. Par défaut, False. False

    Exemple de code :

    import pandas as pd
    
    # Création d'un DataFrame exemple
    df = pd.DataFrame({
        'col1': ['A', 'A', 'B', 'B'],
        'col2': [1, 2, 1, 2],
        'valeur': [10, 20, 30, 40]
    })
    
    # Définir un MultiIndex avec les colonnes 'col1' et 'col2'
    df_multiindex = df.set_index(['col1', 'col2'])
    
    # Affichage du DataFrame avec MultiIndex
    print(df_multiindex)

    Explication du code :

    1. df.set_index(['col1', 'col2']) :
      • Cette ligne permet de définir les colonnes col1 et col2 comme index du DataFrame.
      • Le résultat sera un MultiIndex avec deux niveaux, où le premier niveau est basé sur les valeurs de col1 et le second niveau sur celles de col2.
    2. Option inplace=True :
      • Si vous souhaitez modifier le DataFrame en place sans créer une nouvelle variable, vous pouvez ajouter inplace=True. Cela ne retournera rien, mais le DataFrame original sera modifié.

    🔹 Remarques pratiques

    • Manipulation des index :
      Le MultiIndex facilite l'accès et la manipulation des données en plusieurs niveaux. Par exemple, vous pouvez accéder aux données d'un certain niveau de l'index en utilisant df.loc['A'] pour obtenir toutes les lignes où col1 est égal à 'A'.

    • Fonctionnalité d'agrégation :
      Le MultiIndex est souvent utilisé avec des fonctions d'agrégation (comme groupby() ou pivot_table()) pour effectuer des opérations sur des sous-ensembles de données.

    • Réinitialiser l'index :
      Si vous souhaitez revenir à un index simple après avoir défini un MultiIndex, vous pouvez utiliser la fonction reset_index(). Cela supprimera le MultiIndex et ajoutera les niveaux d'index en tant que colonnes normales.