Python 替换多索引中的值(熊猫)

Python 替换多索引中的值(熊猫),python,pandas,dataframe,multi-index,Python,Pandas,Dataframe,Multi Index,在以下数据框中:如何将[“x2”,“Total”]替换为[“x2”,“x2”]保持x1不变 l1 900 902 912 913 916 l2 ИП ПС ИП ПС ИП ПС ИП ПС ИП ПС i1 i2 x1 Total 10 6 3 3 10 16 2 9 3 8 x2

在以下数据框中:如何将
[“x2”,“Total”]
替换为
[“x2”,“x2”]
保持
x1
不变

l1           900    902    912     913    916     
l2           ИП ПС  ИП ПС  ИП  ПС  ИП ПС  ИП ПС  
i1    i2                                      
x1    Total  10  6   3  3  10  16   2  9   3  8  
x2    Total   1  0   0  0   0   0   0  0   0  0  

.rename
将替换所有
“Total”
值,而不仅仅是我需要的值。

假设您的数据帧被称为df,以下代码将通过用修改的索引替换现有索引来执行您所需的替换

index = df.index
names = index.names
index = df.index.tolist()[:1]+[('x2','x2')]  
df.index = pd.MultiIndex.from_tuples(index, names = names)
也可以直接修改索引的内部级别:

df.index.set_levels([u'Total', u'x2'],level=1,inplace=True)
df.index.set_labels([0, 1],level=1,inplace=True)

您也可以使用
level='i2'
来代替
level=1

我使用了第1种方法:
cis\u I,ind\u l=np.where(t.index.get\u level\u values(“i1”)=“x2”=“0][0],t.index.tolist()
t.index=pd.MultiIndex.from\u元组(ind u-l[:cis\u-I]+(((“x2”、“x2”)]]indu-l)]