如何在Pandas中重命名单个MultiIndex行索引
替换Pandas MultiIndex中的指定索引值
针对你给出的MultiIndex DataFrame,要把索引("", "")替换为("Total", ""),可以用以下两种简单方法:
方法一:直接修改索引元组列表
先将索引转换为列表,定位目标索引的位置进行替换,再重新生成MultiIndex:
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"]) # 修改索引 index_tuples = list(df.index) # 找到目标索引并替换 target = ("", "") new_idx = ("Total", "") index_tuples[index_tuples.index(target)] = new_idx # 更新DataFrame索引 df.index = pd.MultiIndex.from_tuples(index_tuples, names=df.index.names)
方法二:使用rename方法(更简洁)
利用Pandas的rename方法,直接传入索引映射字典,针对MultiIndex的元组完成替换:
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 = df.rename(index={("", ""): ("Total", "")})
两种方法执行后,都能得到索引修改完成、其他内容保持不变的DataFrame。
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

