Pandas 使用具有相同索引和列的两个数据帧创建新数据帧

Pandas 使用具有相同索引和列的两个数据帧创建新数据帧,pandas,Pandas,我有两个数据帧(df1,df2): 我想做到这一点: new_df:` col1 col2 col3 col4 df1 df2 df1 df2 df1 df2 df1 df2 A 1 2 2 4 3 6 4 8 B 1 2 2 4 3 6 4 8 C 1 2 2 4 3 6 4 8 D

我有两个数据帧(df1,df2):

我想做到这一点:

new_df:`

         col1     col2     col3     col4
     df1  df2  df1 df2  df1 df2  df1 df2
A      1    2    2   4    3   6    4   8       
B      1    2    2   4    3   6    4   8
C      1    2    2   4    3   6    4   8
D      1    2    2   4    3   6    4   8
我尝试了一些多索引方法,但无法获得所需的输出。
我该怎么做呢?

pd.concat
带键和
排序索引
轴=1
上:

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

另一种可能的方法是,
df.join
并通过拆分列创建多个索引,然后对索引进行排序,但第一个索引更干净

out1 = df1.join(df2,lsuffix='_df1',rsuffix='_df2')
out1.columns = out1.columns.str.split('_',expand=True)
out1 = out1.sort_index(axis=1)

  col1     col2     col3     col4    
   df1 df2  df1 df2  df1 df2  df1 df2
A    1   2    2   4    3   6    4   8
B    1   2    2   4    3   6    4   8
C    1   2    2   4    3   6    4   8
D    1   2    2   4    3   6    4   8 
out1 = df1.join(df2,lsuffix='_df1',rsuffix='_df2')
out1.columns = out1.columns.str.split('_',expand=True)
out1 = out1.sort_index(axis=1)