Sie können rename_axis
verwenden, um das Setzen auf None
zu entfernen:
d = {'Index-Titel': ['Äpfel', 'Orangen', 'Welpen', 'Enten'],'Spalte 1': [1.0, 2.0, 3.0, 4.0]}
df = pd.DataFrame(d).set_index('Index-Titel')
print (df)
Spalte 1
Index-Titel
Äpfel 1.0
Orangen 2.0
Welpen 3.0
Enten 4.0
print (df.index.name)
Index-Titel
print (df.columns.name)
None
Die neue Funktionalität funktioniert gut in Methodenketten.
df = df.rename_axis('foo')
print (df)
Spalte 1
foo
Äpfel 1.0
Orangen 2.0
Welpen 3.0
Enten 4.0
Sie können auch Spaltennamen mit dem Parameter axis
umbenennen:
d = {'Index-Titel': ['Äpfel', 'Orangen', 'Welpen', 'Enten'],'Spalte 1': [1.0, 2.0, 3.0, 4.0]}
df = pd.DataFrame(d).set_index('Index-Titel').rename_axis('Spaltenname', axis=1)
print (df)
Spaltenname Spalte 1
Index-Titel
Äpfel 1.0
Orangen 2.0
Welpen 3.0
Enten 4.0
print (df.index.name)
Index-Titel
print (df.columns.name)
Spaltenname
print df.rename_axis('foo').rename_axis("bar", axis="columns")
bar Spalte 1
foo
Äpfel 1.0
Orangen 2.0
Welpen 3.0
Enten 4.0
print df.rename_axis('foo').rename_axis("bar", axis=1)
bar Spalte 1
foo
Äpfel 1.0
Orangen 2.0
Welpen 3.0
Enten 4.0
Ab Version pandas 0.24.0+
ist es möglich, die Parameter index
und columns
zu verwenden:
df = df.rename_axis(index='foo', columns="bar")
print (df)
bar Spalte 1
foo
Äpfel 1.0
Orangen 2.0
Welpen 3.0
Enten 4.0
Das Entfernen von Index- und Spaltennamen bedeutet, sie auf None
zu setzen:
df = df.rename_axis(index=None, columns=None)
print (df)
Spalte 1
Äpfel 1.0
Orangen 2.0
Welpen 3.0
Enten 4.0
Wenn MultiIndex
nur im Index vorhanden ist:
mux = pd.MultiIndex.from_arrays([['Äpfel', 'Orangen', 'Welpen', 'Enten'],
list('abcd')],
names=['Indexname 1','Indexname 1'])
df = pd.DataFrame(np.random.randint(10, size=(4,6)),
index=mux,
columns=list('ABCDEF')).rename_axis('Spaltenname', axis=1)
print (df)
Spaltenname A B C D E F
Indexname 1 Indexname 1
Äpfel a 5 4 0 5 2 2
Orangen b 5 8 2 5 9 9
Welpen c 7 6 0 7 8 3
Enten d 6 5 0 1 6 0
print (df.index.name)
None
print (df.columns.name)
Spaltenname
print (df.index.names)
['Indexname 1', 'Indexname 1']
print (df.columns.names)
['Spaltenname']
df1 = df.rename_axis(('foo','bar'))
print (df1)
Spaltenname A B C D E F
foo bar
Äpfel a 5 4 0 5 2 2
Orangen b 5 8 2 5 9 9
Welpen c 7 6 0 7 8 3
Enten d 6 5 0 1 6 0
df2 = df.rename_axis('baz', axis=1)
print (df2)
baz A B C D E F
Indexname 1 Indexname 1
Äpfel a 5 4 0 5 2 2
Orangen b 5 8 2 5 9 9
Welpen c 7 6 0 7 8 3
Enten d 6 5 0 1 6 0
df2 = df.rename_axis(index=('foo','bar'), columns='baz')
print (df2)
baz A B C D E F
foo bar
Äpfel a 5 4 0 5 2 2
Orangen b 5 8 2 5 9 9
Welpen c 7 6 0 7 8 3
Enten d 6 5 0 1 6 0
Das Entfernen von Index- und Spaltennamen bedeutet, sie auf None
zu setzen:
df2 = df.rename_axis(index=(None,None), columns=None)
print (df2)
A B C D E F
Äpfel a 6 9 9 5 4 6
Orangen b 2 6 7 4 3 5
Welpen c 6 3 6 3 5 1
Enten d