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

问题描述 投票:0回答:2

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

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.meltand给出索引名称。有谁有更好的想法?

python pandas
2个回答
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

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
© www.soinside.com 2019 - 2024. All rights reserved.