替换 MultiIndex 中的值 (pandas)
Replace a value in MultiIndex (pandas)
在以下 DataFrame 中:如何将 ["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
在以下 DataFrame 中:如何将 ["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