Pandas adding two Multiindex Dataframes

前端 未结 1 868
礼貌的吻别
礼貌的吻别 2021-01-16 01:25

I\'m trying to add two dataframes with Multiindex Columns and different index sizes together. What is the most elegant solution. And example is:

names = [\'L         


        
相关标签:
1条回答
  • 2021-01-16 01:51

    Setup

    In [76]: df1
    Out[76]: 
    Level 0        A                   B
    Level 1       A1        A2        B1
    0       -0.28667  1.852091 -0.134793
    
    In [77]: df2
    Out[77]: 
    Level 0         A                   B
    Level 1        A1        A3        B1
    0       -0.023582 -0.713594  0.487355
    1        0.628819  0.764721 -1.118777
    2       -0.572421  1.326448 -0.788531
    3       -0.160608  1.985142  0.344845
    4       -0.184555 -1.075794  0.630975
    

    This will align the frames and fill the nan's with 0 but not broadcast

    In [63]: df1a,df2a = df1.align(df2,fill_value=0)
    
    In [64]: df1a+df2a
    Out[64]: 
    Level 0         A                             B
    Level 1        A1        A2        A3        B1
    0       -0.310253  1.852091 -0.713594  0.352561
    1        0.628819  0.000000  0.764721 -1.118777
    2       -0.572421  0.000000  1.326448 -0.788531
    3       -0.160608  0.000000  1.985142  0.344845
    4       -0.184555  0.000000 -1.075794  0.630975
    

    This is the way to broadcast the first one

    In [65]: df1a,df2a = df1.align(df2)
    
    In [66]: df1a.ffill().fillna(0) + df2a.fillna(0)
    Out[66]: 
    Level 0         A                             B
    Level 1        A1        A2        A3        B1
    0       -0.310253  1.852091 -0.713594  0.352561
    1        0.342149  1.852091  0.764721 -1.253570
    2       -0.859091  1.852091  1.326448 -0.923324
    3       -0.447278  1.852091  1.985142  0.210052
    4       -0.471226  1.852091 -1.075794  0.496181
    
    0 讨论(0)
提交回复
热议问题