重命名pandas MultiIndex中的一个级别项
我有一个 pandas 的数据表,结构大概是这样的:
Name Location Position Data1 Data2
Foo loc1 12345 present absent
Foo2 loc2 67890 absent present
在这个表中,Name
、Location
和 Position
是多重索引的层级。不过我需要重命名其中一个索引层级:在这个例子中,我想把 Foo2
改成 Bar
。
我原以为可以用 DataFrame.rename()
来完成这个任务,但如果我这样指定:
new_df = old_df.rename(index={"Foo2": "Bar"})
它并没有真正改变索引,反而把它变得简单了。
我想做的事情是可能的吗?还是我遇到了 pandas 的一个问题?
1 个回答
4
rename
这个函数应该把字典转换成一个映射器,然后把这个映射器应用到每一个索引上。不过,对于MultiIndex
的情况,它只会遍历每一个元组,而不是每一个索引。我已经修复了这个问题,并提交了一个拉取请求。