熊猫MultiIndex合并

时间:2018-02-12 00:49:37

标签: pandas dataframe concat multi-index

假设我有两个数据帧,如下所示:

Prices = response.xpath(
        "//div[contains(@class,'featured-cruise-price-inner-price')]/span/descendant::text()").extract()

其中s和d如下:

enter image description here

enter image description here

我想根据年份索引合并它们,使它们显示如下:

enter image description here

我非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

你可以reset_index,然后它会使索引合并为df merge(这更容易)

s.reset_index().assign(key=s.index.get_level_values(1).str[:4]).merge(d.reset_index().assign(key=d.index.get_level_values(1).str[:4]),on=['name','key'],how='left').set_index(['name','date_x']).drop(['key','date_y'],1)
Out[1099]: 
                 test1  test2
name date_x                  
one  1993-02-02    1.0    1.0
     1994-02-03    2.0    2.0
two  1995-02-18    3.0    3.0
     1996-03-01    4.0    4.0