В текущем выбранном ответе не упоминается rename_axisметод, который можно использовать для переименования уровней индекса и столбца.
Панды имеют некоторую причудливость, когда дело доходит до переименования уровней индекса. Также rename_axisдоступен новый метод DataFrame для изменения имен на уровне индекса.
Давайте посмотрим на 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. При создании Series из 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метода.