Cela semble assez évident, mais je n'arrive pas à comprendre comment convertir un index de trame de données en colonne?
Par exemple:
df=
gi ptt_loc
0 384444683 593
1 384444684 594
2 384444686 596
À,
df=
index1 gi ptt_loc
0 0 384444683 593
1 1 384444684 594
2 2 384444686 596
df.reset_index(level=df.index.names, inplace=True)
on peut convertir un multi-index entier donné en colonnesdf.reset_index()
, qui déplace l'intégralité de l'index dans les colonnes (une colonne par niveau) et crée un index int de 0 à len (df) -1df['index1'] = df.index
renvoie un avertissement: "Une valeur tente d'être définie sur une copie d'une tranche d'un DataFrame." Utilisez plutôt la fonction df.assign (), comme illustré ci-dessous.Pour MultiIndex, vous pouvez extraire son sous-index en utilisant
où
si_name
est le nom du sous-index.la source
Pour fournir un peu plus de clarté, regardons un DataFrame avec deux niveaux dans son index (un MultiIndex).
La
reset_index
méthode, appelée avec les paramètres par défaut, convertit tous les niveaux d'index en colonnes et utilise unRangeIndex
index simple comme nouvel.Utilisez le
level
paramètre pour contrôler les niveaux d'index convertis en colonnes. Si possible, utilisez le nom du niveau, qui est plus explicite. S'il n'y a pas de nom de niveau, vous pouvez faire référence à chaque niveau par son emplacement entier, qui commence à 0 de l'extérieur. Vous pouvez utiliser ici une valeur scalaire ou une liste de tous les index que vous souhaitez réinitialiser.Dans les rares cas où vous souhaitez conserver l'index et transformer l'index en colonne, vous pouvez effectuer les opérations suivantes:
la source
rename_axis
+reset_index
Vous pouvez d'abord renommer votre index en une étiquette souhaitée, puis passer à une série:
Cela fonctionne également pour les
MultiIndex
trames de données:la source
Si vous souhaitez utiliser la
reset_index
méthode et également conserver votre index existant, vous devez utiliser:ou pour le changer en place:
Par exemple:
Et si vous voulez vous débarrasser de l'étiquette d'index, vous pouvez le faire:
la source
la source
Une façon très simple de le faire est d'utiliser la méthode reset_index (). Pour une trame de données df, utilisez le code ci-dessous:
De cette façon, l'index deviendra une colonne, et en utilisant inplace comme True, cela deviendra un changement permanent.
la source