加入/合并两个Pandas数据帧并使用列作为多索引

时间:2017-07-25 15:12:41

标签: python pandas merge multi-index

我有两个数据框,其中包含按日期划分的KPI。我想将它们组合起来并使用多索引,以便每个KPI可以轻松地与另外两个df进行比较。

像这样:

concat dataframes and swap multiindex

我试图将每个KPI提取到一个系列中,相应地重命名系列(df1,df2),然后使用pd.concat的keys参数连接它们,但它似乎没有用。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

让我们pd.concat使用keys参数,swaplevelsort_index

df1 = pd.DataFrame({'A':['A0','A1','A2'],'B':['B0','B1','B2'],'C':['C0','C1','C2']},index=pd.date_range('2017-01-01',periods=3, freq='M'))
df2 = pd.DataFrame({'A':['A3','A4','A5'],'B':['B3','B4','B5'],'C':['C3','C4','C5']},index=pd.date_range('2017-01-01',periods=3, freq='M'))

pd.concat([df1,df2],axis=1,keys=['df1','df2']).swaplevel(0,1,axis=1).sort_index(axis=1)

输出:

             A       B       C    
           df1 df2 df1 df2 df1 df2
2017-01-31  A0  A3  B0  B3  C0  C3
2017-02-28  A1  A4  B1  B4  C1  C4
2017-03-31  A2  A5  B2  B5  C2  C5