>我有这个系列:
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
有可能进行这种运动。感谢您的帮助。
您可以先从MultiIndex
reset_index
列,然后将新列insert
到位置 1 的位置 1replace
和最后一个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
replace
和MultiIndex.from_arrays
来创建新MultiIndex
,并重新分配:
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