Join/Merge 两个 Pandas 数据框并使用列作为多索引
Join/Merge two Pandas dataframes and use columns as multiindex
我有两个按日期显示 KPI 的数据框。我想将它们结合起来并使用多索引,以便每个 KPI 可以轻松地与两个 df 的另一个进行比较。
像这样:
我试图将每个 KPI 提取到一个系列中,相应地重命名系列(df1、df2),然后使用 pd.concat 的键参数连接它们,但它似乎不起作用。
如有任何帮助,我们将不胜感激。
让我们将 pd.concat
与 keys
参数、swaplevel
和 sort_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
我有两个按日期显示 KPI 的数据框。我想将它们结合起来并使用多索引,以便每个 KPI 可以轻松地与两个 df 的另一个进行比较。
像这样:
我试图将每个 KPI 提取到一个系列中,相应地重命名系列(df1、df2),然后使用 pd.concat 的键参数连接它们,但它似乎不起作用。
如有任何帮助,我们将不胜感激。
让我们将 pd.concat
与 keys
参数、swaplevel
和 sort_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