我有这个系列:
dealer certificate_status brand_kia
aeropuerto NO False 22 days
True 29 days
Galerías SI False 59 days
NO False 34 days
我还有另一个系列:
dealer
aeropuerto 36 days
Galerías 41 days
如何将最后一个系列的值作为第一个系列的索引,但使用平均名称。 它会是这样的:
dealer average certificate_status brand_kia
aeropuerto 36 days NO False 22 days
True 29 days
Galerías 41 ays SI False 59 days
NO False 34 days
可以进行这种运动。谢谢你的帮助。
答案 0 :(得分:0)
您可以先MultiIndex
从Multiindex
开始reset_index
,然后insert
将新列添加到replace
的第1位,将set_index
用于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
:
MultiIndex
或者您可以get_level_values
和replace
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
并分配回来:
<form>