如何重命名Pandas中的单个MultiIndex行

xurqigkl  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(173)

我有以下多索引数据框:

import pandas as pd

df = pd.DataFrame()

df["Idx1"] = ["", "A", "B"]
df["Idx2"] = ["", "AA", "BB"]
df["Value"] = [1,2,3]
df = df.set_index(["Idx1", "Idx2"])

df

我只想用("Total", "")索引替换("", "")索引,我怎么能做到这一点,而不改变其他内容呢?

ar7v8xwq

ar7v8xwq1#

第一种选择:第二个层次并不重要

df = df.rename({'': 'Total'}, level='Idx1')

如果要同时匹配两个级别,请创建一个新索引:

idx = (df.index.to_series()
         .map(lambda x: {('', ''): ('Total', '')}.get(x, x))
      )
df.index = pd.MultiIndex.from_tuples(idx)

输出:

Value
Idx1  Idx2       
Total           1
A     AA        2
B     BB        3

相关问题