如何将一个系列转换为另一个系列的索引,并按其索引对齐

时间:2018-02-09 16:47:51

标签: python pandas series

我有这个系列:

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

可以进行这种运动。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以先MultiIndexMultiindex开始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_valuesreplace 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>