将行中的两个单索引数据帧合并为一个具有多级索引的数据帧

时间:2018-03-01 21:53:54

标签: python pandas

我有两个带有单索引的数据框。我想将它们合并为一个但具有两级索引。

import pandas as pd  
import numpy as np  
busjouney={'bus':['A','B'],'journey':[60,60]}  
daytable={'days':['Mon','Tue'],'journey':[60,60]}  
pd_busjouney=pd.DataFrame(busjouney)  
pd_daytable=pd.DataFrame(daytable)  

我想将这两个数据框合并为一个具有两级索引的数据框,如下所示:

days bus journey  
Mon  A   60  
     B   60  
Tue  A   60
     B   60

我的繁琐方法是创建一个数据框,其中包含天数和行中的行,值为60.然后使用pd.melt并给出索引名称。有谁有更好的想法?

2 个答案:

答案 0 :(得分:0)

In [1]: pd_daytable.groupby('days').apply(lambda x: x.merge(pd_busjouney))\
                   .set_index(['days', 'bus'])

Out[1]: 
          journey
days bus         
Mon  A         60
     B         60
Tue  A         60
     B         60

答案 1 :(得分:0)

这是一种方式:

df = pd_daytable.merge(pd_busjouney, how='left', on='journey')\
                .set_index(['days', 'bus'])

#           journey
# days bus         
# Mon  A         60
#      B         60
# Tue  A         60
#      B         60
相关问题