考虑一个具有层次结构索引(i1,i2)和一些数据列“ x”的Pandas DataFrame对象
i1 i2 x
a 0 3
a 1 7
a 2 9
b 0 11
b 1 2
给出与pd.MultiIndex对象等效的
[('a', '0'), ('a', '1')]
可以采用什么通用方法来修改原始DataFrame的索引以提供:
i1 i2 x
c 0 3
c 1 7
a 2 9
b 0 11
b 1 2
注意:['a',2]不变
答案 0 :(得分:2)
我只能想到将索引改回列然后再将其放回索引
s=df.index.to_frame()
s.loc[[('a', 0), ('a', 1)],'i1']='c'
df.index=pd.MultiIndex.from_frame(s)
df
Out[164]:
x
i1 i2
c 0 3
1 7
a 2 9
b 0 11
1 2