La réponse actuellement sélectionnée ne mentionne pas la rename_axisméthode qui peut être utilisée pour renommer les niveaux d'index et de colonne.
Pandas a une certaine bizarrerie lorsqu'il s'agit de renommer les niveaux de l'index. Il existe également une nouvelle méthode DataFrame rename_axisdisponible pour modifier les noms de niveau d'index.
Jetons un œil à un DataFrame
df = pd.DataFrame({'age':[30, 2, 12],
'color':['blue', 'green', 'red'],
'food':['Steak', 'Lamb', 'Mango'],
'height':[165, 70, 120],
'score':[4.6, 8.3, 9.0],
'state':['NY', 'TX', 'FL']},
index = ['Jane', 'Nick', 'Aaron'])

Ce DataFrame a un niveau pour chacun des index de ligne et de colonne. L'index de ligne et de colonne n'a pas de nom. Modifions le nom du niveau d'index de ligne en «noms».
df.rename_axis('names')

La rename_axisméthode a également la possibilité de modifier les noms de niveau de colonne en modifiant le axisparamètre:
df.rename_axis('names').rename_axis('attributes', axis='columns')

Si vous définissez l'index avec certaines des colonnes, le nom de la colonne deviendra le nouveau nom de niveau d'index. Ajoutons aux niveaux d'indexation de notre DataFrame d'origine:
df1 = df.set_index(['state', 'color'], append=True)
df1

Remarquez que l'index d'origine n'a pas de nom. Nous pouvons toujours utiliser rename_axismais devons lui transmettre une liste de la même longueur que le nombre de niveaux d'index.
df1.rename_axis(['names', None, 'Colors'])

Vous pouvez utiliser Nonepour supprimer efficacement les noms de niveau d'index.
Les séries fonctionnent de la même manière mais avec quelques différences
Créons une série avec trois niveaux d'index
s = df.set_index(['state', 'color'], append=True)['food']
s
state color
Jane NY blue Steak
Nick TX green Lamb
Aaron FL red Mango
Name: food, dtype: object
Nous pouvons utiliser de la rename_axismême manière que nous l'avons fait avec DataFrames
s.rename_axis(['Names','States','Colors'])
Names States Colors
Jane NY blue Steak
Nick TX green Lamb
Aaron FL red Mango
Name: food, dtype: object
Notez qu'il y a un élément supplémentaire de métadonnées sous la série appelée Name. Lors de la création d'une série à partir d'un DataFrame, cet attribut est défini sur le nom de la colonne.
Nous pouvons passer un nom de chaîne à la renameméthode pour le changer
s.rename('FOOOOOD')
state color
Jane NY blue Steak
Nick TX green Lamb
Aaron FL red Mango
Name: FOOOOOD, dtype: object
Les DataFrames n'ont pas cet attribut et en fait lèveront une exception s'ils sont utilisés comme ceci
df.rename('my dataframe')
TypeError: 'str' object is not callable
Avant pandas 0.21, vous auriez pu rename_axisrenommer les valeurs de l'index et des colonnes. Il est obsolète, alors ne le faites pas
rename_axisméthode.