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 :
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'
.