重命名pandas MultiIndex中的一个级别项

5 投票
1 回答
2667 浏览
提问于 2025-04-17 20:12

我有一个 pandas 的数据表,结构大概是这样的:

Name    Location    Position   Data1    Data2
Foo     loc1        12345      present  absent
Foo2    loc2        67890      absent   present

在这个表中,NameLocationPosition 是多重索引的层级。不过我需要重命名其中一个索引层级:在这个例子中,我想把 Foo2 改成 Bar

我原以为可以用 DataFrame.rename() 来完成这个任务,但如果我这样指定:

new_df = old_df.rename(index={"Foo2": "Bar"})

它并没有真正改变索引,反而把它变得简单了。

我想做的事情是可能的吗?还是我遇到了 pandas 的一个问题?

1 个回答

4

rename这个函数应该把字典转换成一个映射器,然后把这个映射器应用到每一个索引上。不过,对于MultiIndex的情况,它只会遍历每一个元组,而不是每一个索引。我已经修复了这个问题,并提交了一个拉取请求

撰写回答