Aktualnie wybrana odpowiedź nie wspomina o rename_axismetodzie, za pomocą której można zmienić nazwę poziomu indeksu i kolumn.
Pandy mają pewne dziwactwa, jeśli chodzi o zmianę nazwy poziomów indeksu. Dostępna jest również nowa metoda DataFrame rename_axisdo zmiany nazw poziomów indeksu.
Przyjrzyjmy się ramce 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'])

Ta ramka DataFrame ma jeden poziom dla każdego z indeksów wierszy i kolumn. Indeks wiersza i kolumny nie ma nazwy. Zmieńmy nazwę poziomu indeksu wiersza na „nazwy”.
df.rename_axis('names')

rename_axisMetoda ma również możliwość zmiany nazwy poziom kolumna zmieniając axisparametr:
df.rename_axis('names').rename_axis('attributes', axis='columns')

Jeśli ustawisz indeks z niektórymi kolumnami, nazwa kolumny stanie się nową nazwą poziomu indeksu. Dodajmy do poziomów indeksowania naszej oryginalnej ramki DataFrame:
df1 = df.set_index(['state', 'color'], append=True)
df1

Zwróć uwagę, że oryginalny indeks nie ma nazwy. Nadal możemy użyć, rename_axisale musimy przekazać jej listę o takiej samej długości, jak liczba poziomów indeksu.
df1.rename_axis(['names', None, 'Colors'])

Możesz użyć, Noneaby skutecznie usunąć nazwy poziomów indeksu.
Serie działają podobnie, ale z pewnymi różnicami
Utwórzmy serię z trzema poziomami indeksu
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
Możemy użyć rename_axispodobnie, jak zrobiliśmy z 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
Zwróć uwagę, że pod nazwą Series znajduje się dodatkowy fragment metadanych Name. Podczas tworzenia serii z DataFrame ten atrybut jest ustawiany na nazwę kolumny.
Możemy przekazać renamemetodzie nazwę ciągu , aby ją zmienić
s.rename('FOOOOOD')
state color
Jane NY blue Steak
Nick TX green Lamb
Aaron FL red Mango
Name: FOOOOOD, dtype: object
Ramki DataFrames nie mają tego atrybutu i infact zgłosi wyjątek, jeśli zostanie użyty w ten sposób
df.rename('my dataframe')
TypeError: 'str' object is not callable
Przed wersją pandas 0.21 mogłeś rename_axiszmienić nazwy wartości w indeksie i kolumnach. Został wycofany, więc nie rób tego
rename_axismetody.