我有以下多索引数据框:
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", "")索引替换("", "")索引,我怎么能做到这一点,而不改变其他内容呢?
("Total", "")
("", "")
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
1条答案
按热度按时间ar7v8xwq1#
第一种选择:第二个层次并不重要
如果要同时匹配两个级别,请创建一个新索引:
输出: