【问题标题】:total of all rows in new column pandas新列 pandas 中所有行的总数
【发布时间】:2022-07-08 12:46:31
【问题描述】:

问题:- 获取所有一两列的总和

              bar                 baz                 foo              
          one       two       one       two       one    two        
name
A       0.895717  0.805244  1.206412  2.565646  1.431256   1.431256     
B       0.410835  0.813850  0.132003  0.827317  0.076467   0.076467     
C       1.413681  1.607920  1.024180  0.569605  0.875906   0.875906 

输出:-

               bar                 baz                 foo   
          one       two       one       two        one      two     
name                                                                 total of one   total of two
A       0.895717  0.805244  1.206412  2.565646   1.431256  1.431256   sum of one    sum of two 
B       0.410835  0.813850  0.132003  0.827317   0.076467  0.076467   sum of one    sum of two
C       1.413681  1.607920  1.024180  0.569605   0.875906  0.875906   sum of one    sum of two
Total    sum        sum      sum       sum         sum      sum 

【问题讨论】:

    标签: python pandas sum rowsum


    【解决方案1】:

    您可以在列中每秒聚合多级索引,然后为MultiIndex 添加第一级all,因此可以使用DataFrame.join 的左连接:

    df1 = pd.concat({'all': df.groupby(level=1, axis=1).sum().add_prefix('total_')}, axis=1)
    df = df.join(df1)
    print (df)
            bar                 baz                 foo                 all  \
            one       two       one       two       one       two total_one   
    A  0.895717  0.805244  1.206412  2.565646  1.431256  1.431256  3.533385   
    B  0.410835  0.813850  0.132003  0.827317  0.076467  0.076467  0.619305   
    C  1.413681  1.607920  1.024180  0.569605  0.875906  0.875906  3.313767   
    
                 
      total_two  
    A  4.802146  
    B  1.717634  
    C  3.053431  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-06
      • 2021-03-21
      • 1970-01-01
      • 2020-10-04
      • 2022-07-19
      • 1970-01-01
      • 2023-01-20
      • 2022-07-05
      相关资源
      最近更新 更多