我有两个数据框
sessions = DataFrame({"ID":[1,2,3,4,5],"2018-06-30":[23,34,45,67,75],"2018-07-31":[32,43,45,76,57]})
leads = DataFrame({"ID":[1,2,3,4,5],"2018-06-30":[7,10,28,15,30],"2018-07-31":[7,10,28,15,30]})
Run Code Online (Sandbox Code Playgroud)
我想合并 ID 上的两个数据帧,然后创建一个多索引,如下所示:
我该怎么做?
直接 pandas.merge 将创建我不想要的 suffixes_x, _y 。
使用concat与set_index由ID两个DataFrames,然后 swaplevel与sort_index对预期MultiIndex在列:
df = (pd.concat([sessions.set_index('ID'),
leads.set_index('ID')],
axis=1,
keys=['sessions','leads'])
.swaplevel(0,1,axis=1)
.sort_index(axis=1, ascending=[True, False])
)
print (df)
2018-06-30 2018-07-31
sessions leads sessions leads
ID
1 23 7 32 7
2 34 10 43 10
3 45 28 45 28
4 67 15 76 15
5 75 30 57 30
Run Code Online (Sandbox Code Playgroud)