在熊猫中使用concat函数

时间:2020-08-20 06:24:19

标签: python pandas

我想合并df1和df2。 我将concat函数与外部联接一起使用,并使用了多索引。

结果是合并索引值,我想划分索引列。

请告诉我该怎么做。

   df1:
        CODE    U-01    U-02    U-03    U-04    U-05        
  INDEX host                                                                                    
   L1   A        3.0    3.0     3.0     3.0      3.0        

   L2   B        3.0    3.0     3.0     3.0      3.0

   L3   C        3.0    3.0     3.0     3.0      3.0    

   L4   D        3.0    3.0     3.0     3.0      3.0


  df2:
  CODE      U-01     U-02   U-03    U-04    U-05    
  LEVEL      H        L       H      M        L 
  STANDARD   3        3       3      3        2

所以,我的代码是,

 total_data = pd.concat([df1, df2], join='outer')

但是,结果是

            U-01    U-02    U-03    U-04    U-05        
 LEVEL       H       L        H       M       L 
STANDARD     3       3        3       3       2                                                                     
 (L1,A)     3.0     3.0      3.0     3.0     3.0        

 (L2,B)     3.0     3.0      3.0     3.0     3.0

 (L3,C)     3.0     3.0      3.0     3.0     3.0    

 (L4,D)     3.0     3.0      3.0     3.0     3.0

我想拆分列并使用多索引。

 Desired result would be :

             U-01   U-02    U-03    U-04    U-05        
 LEVEL        H       L       H       M       L 
 STANDARD     3       3       3       3       2                                                                     
 L1      A   3.0      3.0    3.0     3.0     3.0        

 L2      B   3.0      3.0    3.0     3.0     3.0

 L3      C   3.0      3.0    3.0     3.0     3.0    

 L4      D   3.0      3.0    3.0     3.0     3.0
  

index = INDEX, host

1 个答案:

答案 0 :(得分:1)

在连接之前,两个数据框中都需要MultiIndex in index

因此使用:

df2 = df2.assign(new = '').set_index('new', append=True)

total_data = pd.concat([df1, df2])

然后第二级由第二级中的空格填充(这有点技巧,因为看不到它)。

还可以将一些值添加到第二级(现在可以看到,存在值new):

df2 = df2.assign(new = 'new').set_index('new', append=True)

total_data = pd.concat([df1, df2])