In der aktuell ausgewählten Antwort wird die rename_axis
Methode nicht erwähnt, mit der die Index- und Spaltenebenen umbenannt werden können.
Pandas hat einige Eigenheiten, wenn es darum geht, die Ebenen des Index umzubenennen. Es gibt auch eine neue DataFrame-Methode rename_axis
zum Ändern der Namen auf Indexebene .
Schauen wir uns einen DataFrame an
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'])
Dieser DataFrame hat eine Ebene für jeden Zeilen- und Spaltenindex. Sowohl der Zeilen- als auch der Spaltenindex haben keinen Namen. Lassen Sie uns den Namen der Zeilenindexebene in 'Namen' ändern.
df.rename_axis('names')
Die rename_axis
Methode hat auch die Möglichkeit, die Namen der Spaltenebene durch Ändern des axis
Parameters zu ändern :
df.rename_axis('names').rename_axis('attributes', axis='columns')
Wenn Sie den Index mit einigen Spalten festlegen, wird der Spaltenname zum neuen Namen auf Indexebene. Fügen wir an die Indexebenen unseres ursprünglichen DataFrame hinzu:
df1 = df.set_index(['state', 'color'], append=True)
df1
Beachten Sie, dass der ursprüngliche Index keinen Namen hat. Wir können weiterhin rename_axis
eine Liste mit der gleichen Länge wie die Anzahl der Indexebenen verwenden , müssen diese jedoch übergeben.
df1.rename_axis(['names', None, 'Colors'])
Sie können None
damit die Namen der Indexebenen effektiv löschen.
Serien funktionieren ähnlich, aber mit einigen Unterschieden
Erstellen wir eine Serie mit drei Indexstufen
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
Wir können rename_axis
ähnlich wie bei DataFrames verwenden
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
Beachten Sie, dass sich unterhalb der aufgerufenen Serie ein zusätzliches Stück Metadaten befindet Name
. Beim Erstellen einer Serie aus einem DataFrame wird dieses Attribut auf den Spaltennamen festgelegt.
Wir können der rename
Methode einen Zeichenfolgennamen übergeben , um ihn zu ändern
s.rename('FOOOOOD')
state color
Jane NY blue Steak
Nick TX green Lamb
Aaron FL red Mango
Name: FOOOOOD, dtype: object
DataFrames haben dieses Attribut nicht und infact löst bei dieser Verwendung eine Ausnahme aus
df.rename('my dataframe')
TypeError: 'str' object is not callable
Vor Pandas 0.21 hätten Sie rename_axis
die Werte im Index und in den Spalten umbenennen können. Es ist veraltet, also tu das nicht
rename_axis
Methode zu erhalten.