На даний момент обрана відповідь не згадує rename_axisметод, який можна використовувати для перейменування рівнів індексу та стовпців.
Панда має певну химерність, коли йдеться про перейменування рівнів індексу. Також доступний новий метод DataFrame rename_axisдля зміни назв рівня індексу.
Давайте подивимось на 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'])

Цей DataFrame має один рівень для кожного індексу рядків і стовпців. І індекс рядків і стовпців не мають імені. Давайте змінимо ім’я рівня індексу рядків на "імена".
df.rename_axis('names')

rename_axisМетод також має можливість змінювати імена на рівні стовпців шляхом зміни axisпараметра:
df.rename_axis('names').rename_axis('attributes', axis='columns')

Якщо індекс встановити для деяких зі стовпців, то ім'я стовпця стане новим іменем рівня індексу. Додамо до рівня індексів наш оригінальний DataFrame:
df1 = df.set_index(['state', 'color'], append=True)
df1

Зверніть увагу, як в початковому індексі немає назви. Ми все ще можемо використовувати, rename_axisале потрібно передати йому список тієї ж довжини, що і кількість рівнів індексу.
df1.rename_axis(['names', None, 'Colors'])

Ви можете використовувати Noneдля ефективного видалення імен рівня індексу.
Серії працюють аналогічно, але з деякими відмінностями
Давайте створимо Серію з трьома рівнями індексу
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
Ми можемо використовувати rename_axisаналогічно тому, як у нас із 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
Зауважте, що під назвою Серія є додатковий фрагмент метаданих Name. Створюючи серію з DataFrame, цей атрибут встановлюється на ім'я стовпця.
Ми можемо передати ім'я рядка renameметоду, щоб змінити його
s.rename('FOOOOOD')
state color
Jane NY blue Steak
Nick TX green Lamb
Aaron FL red Mango
Name: FOOOOOD, dtype: object
DataFrames не мають цього атрибута, і Infact створить виняток, якщо він використовується таким чином
df.rename('my dataframe')
TypeError: 'str' object is not callable
До панд 0,21 ви могли rename_axisперейменувати значення в індексі та стовпцях. Вона застаріла, тому не робіть цього
rename_axisметоду.