pandas 重命名多索引数据框中的特定索引级别[重复]

guicsvcw  于 2023-03-28  发布在  其他
关注(0)|答案(1)|浏览(126)

此问题在此处已有答案

pandas index rename using dictionary [duplicate](2个答案)
6天前关闭。
我想做的事情完全可以这样做:

df.reset_index('level_x', inplace=True, drop=False)
df.rename(columns={'level_x': 'level_y', inplace=True)
df.set_index('level_y', append=True)

但我非常肯定有一个一行程序(和更好的)方法。

df.rename(level={'level_x': 'level_y'}, inplace=True)

这当然不起作用(我也试过其他几个,如.rename(index=...).rename(...)等).令人惊讶的是,无论是谷歌还是ChatGPT都没有告诉我如何做这个琐碎的操作...
例如df = pandas.DataFrame({'level_x':[1,2,3], 'asd':[2,3,4], 'a column':[3,4,5]}).set_index(['level_x','asd'])

gk7wooem

gk7wooem1#

您可以使用Index.rename

df.index.rename({'level_x': 'level_y'}, inplace=True)

或者:

df.index = df.index.rename({'level_x': 'level_y'})

示例:

print(df)
                 A
level_w level_x   
1       A        X
2       B        X
3       B        X

df.index = df.index.rename({'level_x': 'level_y'})
print(df)
                 A
level_w level_y   
1       A        X
2       B        X
3       B        X

相关问题