加入/合并两个 Pandas 数据框并将列用作多索引

Posted

技术标签:

【中文标题】加入/合并两个 Pandas 数据框并将列用作多索引【英文标题】:Join/Merge two Pandas dataframes and use columns as multiindex 【发布时间】:2017-12-31 14:46:57 【问题描述】:

我有两个按日期显示 KPI 的数据框。我想将它们结合起来并使用多索引,以便可以轻松地将两个 df 的每个 KPI 与另一个 KPI 进行比较。

像这样:

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

任何帮助将不胜感激。

【问题讨论】:

您好,欢迎来到 Stack Overflow。我首先建议阅读***.com/help/how-to-ask 【参考方案1】:

让我们使用pd.concatkeys 参数、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

【讨论】:

感谢您以某种方式将这些图片转换为代码。 +1

以上是关于加入/合并两个 Pandas 数据框并将列用作多索引的主要内容,如果未能解决你的问题,请参考以下文章

合并两个具有多索引的数据框

如何使用 Pandas 将多索引系列加入单个索引数据框?

Pandas:用于合并两个多索引 DataFrame 的类似 merge_asof 的解决方案?

Pandas:如何向多索引数据框添加列?

Pandas 将数据框与共享列合并,左右填充

在多索引列上合并pandas数据帧