你可以先
reset_index
fo列来自
MultiIndex
然后
insert
位置1的新列由
replace
最后一个
set_index
对于
Multiindex
具有
squeeze
用于转换一列
df
到
Series
:
s = s.reset_index()
s.insert(1, 'average', s['dealer'].replace(s1))
s = s.set_index(['dealer','average','certificate_status','brand_kia']).squeeze()
print (s)
dealer average certificate_status brand_kia
aeropuerto 36 days NO False 22 days
True 29 days
Galerias 41 days SI False 59 days
NO False 34 days
Name: dt, dtype: object
或者您可以创建新的
多索引
通过
get_level_values
具有
代替
和
MultiIndex.from_arrays
并分配回:
lvl1 = s.index.get_level_values(0)
lvl2 = s.index.get_level_values(1)
lvl3 = s.index.get_level_values(2)
lvl = pd.Series(lvl1).replace(s1).values
s.index = pd.MultiIndex.from_arrays([lvl1, lvl, lvl2, lvl3],
names=['dealer','average','certificate_status','brand_kia'])
print (s)
dealer average certificate_status brand_kia
aeropuerto 36 days NO False 22 days
True 29 days
Galerias 41 days SI False 59 days
NO False 34 days
Name: dt, dtype: object