Um den Index (der in eine Spalte umgewandelt wurde) als Index zu behalten, verwenden Sie eine Kombination aus to_frame()
und join()
. Dies erzeugt insbesondere keine SettingWithCopyWarning
, im Gegensatz zur Zuweisung.
df = df.index.to_frame(name='A').join(df)
![res1]()
Dies funktioniert auch für MultiIndex.
df = df.index.to_frame(name=['A', 'B']).join(df)
Außerdem, wie Quinten erwähnt, seit pandas 1.5.0 sind die Syntaxen rename_axis
+ reset_index
(oder reset_index
+ rename
) überflüssig geworden. Sie können direkt names=
als Argument an reset_index()
übergeben. Sogar doppelte Spaltennamen sind erlaubt, wenn allow_duplicates=True
angegeben wird (obwohl doppelte Spaltenbezeichnungen sehr unangebracht sind).
df = df.reset_index(names=['A', 'B'])
![res2]()