1. Verwenden Sie pd.Index
, um einen Index (oder eine Spalte) beim Aufbau zu benennen
Pandas verfügt über Index
(MultiIndex
) Objekte, die Namen akzeptieren. Durch das Übergeben dieser als Index oder Spalte beim Dataframe-Aufbau werden Frames mit benannten Indizes/Spalten erstellt.
data = {'Column 1': [1,2,3,4], 'Index Title': ["Äpfel","Orangen","Welpen","Enten"]}
# für RangeIndex
df = pd.DataFrame(data, index=pd.Index(range(4), name='foo'))
# ^^^^^^^^ <---- hier
# für Index
df = pd.DataFrame(data, index=pd.Index(data['Index Title'], name='foo'))
# ^^^^^^^^ <---- hier
# für Spalten
df = pd.DataFrame(data, columns=pd.Index(data.keys(), name='foo'))
# ^^^^^^^^ <---- hier
# für MultiIndex
df = pd.DataFrame(data, index=pd.MultiIndex.from_arrays([['Obst', 'Obst', 'Tier', 'Tier'], data['Index Title']], names=['foo', 'bar']))
# ^^^^^^^^^^^^^ <---- hier
2. Ändern Sie den Namen des MultiIndex-Level
Wenn das Dataframe einen MultiIndex hat und der Name eines Index auf einer bestimmten Ebene geändert werden muss, kann index.set_names
verwendet werden. Um beispielsweise den Namen der zweiten Indexebene zu ändern, verwenden Sie das folgende. Vergessen Sie nicht inplace=True
.
df.index.set_names('foo', level=1, inplace=True)
# alternativ könnte 'rename' mit einem Dict verwendet werden
df.index.rename({'Index Title 2': 'foo'}, inplace=True)
![res1]()
set_names
kann auch für einfachen Index verwendet werden (setze level=None
). Allerdings ist rename_axis
wahrscheinlich einfacher.
df.index.set_names('foo', level=None, inplace=True)
# äquivalent zu folgendem
df.index.name = 'foo'
df = df.rename_axis('foo')
![res2]()
Es gibt eine entsprechende columns.set_names
für Spalten.
df.columns.set_names('foo', level=None, inplace=True)
# äquivalent zu
df = df.rename_axis(columns='foo')
# für MultiIndex-Spalten
df.columns.set_names('foo', level=0, inplace=True)
![res3]()