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 estFalse
.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 estFalse
.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)
Explication du code :
-
Réinitialisation de l'index :
La méthodereset_index()
permet de réinitialiser l'index d'un DataFrame et de récupérer les valeurs des niveaux de l'index sous forme de colonnes. Cela est particulièrement utile lorsque vous travaillez avec unMultiIndex
et souhaitez le transformer en colonnes. -
drop=False
(par défaut) :
Lorsquedrop=False
, les niveaux d'index sont ajoutés comme nouvelles colonnes dans le DataFrame. Cela vous permet de conserver les informations relatives à l'index tout en réinitialisant l'index. -
inplace=True
:
Lorsqueinplace=True
, la méthode modifie le DataFrame original sans créer de nouveau DataFrame. Cela permet de modifier le DataFrame en place pour économiser de la mémoire.
🔹 Remarques pratiques
-
Réinitialisation d'un MultiIndex :
Lorsque vous travaillez avec unMultiIndex
, l'utilisation dereset_index()
peut être nécessaire pour "aplatir" la structure des données et faciliter certaines opérations, telles que l'exportation des données ou leur analyse avec des méthodes qui ne supportent pas lesMultiIndex
. -
Suppression de l'index (option
drop=True
) :
Si vous n'avez pas besoin de conserver les niveaux de l'index après leur réinitialisation, vous pouvez utiliserdrop=True
pour les supprimer au lieu de les convertir en colonnes. inplace=True
:
Si vous n'avez pas besoin de conserver le DataFrame d'origine, vous pouvez utiliserinplace=True
pour modifier directement l'objet DataFrame.
-