我有两个带有单索引的数据框。我想将它们合并为一个但具有两级索引。
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
并给出索引名称。有谁有更好的想法?
答案 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