首页 > 解决方案 > 如何用熊猫中的其他值重命名多索引索引值?

问题描述

我有一个熊猫 DataFrame MultiIndex:

f1  f2  value
2   3   5
3   3   4
4   1   3
    4   3

我想要一个输出来替换 f2 :

f value
1  A
2  B
3  C
4  D

所以输出应该是这样的:

f1  f2  value
2   C   5
3   C   4
4   A   3
    D   3

你能推荐一种优雅的方式来创建输出吗?

标签: pythonpandas

解决方案


使用MultiIndex.set_levels

new = df.index.levels[1].map(df1.set_index('f')['value'])

df.index = df.index.set_levels(new, level=1)
print (df)
       value
f1 f2       
2  C       5
3  C       4
4  A       3
   D       3

推荐阅读