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)]