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 :
df.set_index(['col1', 'col2'])
:- Cette ligne permet de définir les colonnes
col1
etcol2
comme index du DataFrame. - Le résultat sera un
MultiIndex
avec deux niveaux, où le premier niveau est basé sur les valeurs decol1
et le second niveau sur celles decol2
.
- Cette ligne permet de définir les colonnes
- 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é.
- Si vous souhaitez modifier le DataFrame en place sans créer une nouvelle variable, vous pouvez ajouter
🔹 Remarques pratiques
-
Manipulation des index :
LeMultiIndex
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 utilisantdf.loc['A']
pour obtenir toutes les lignes oùcol1
est égal à 'A'. -
Fonctionnalité d'agrégation :
LeMultiIndex
est souvent utilisé avec des fonctions d'agrégation (commegroupby()
oupivot_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 unMultiIndex
, vous pouvez utiliser la fonctionreset_index()
. Cela supprimera leMultiIndex
et ajoutera les niveaux d'index en tant que colonnes normales.