首页 > 解决方案 > 分组并跨数据框中的列求和

问题描述

我正在使用这个数据框:

                                Col1   Col2  Col3     Date
Name                  Score                                            
Bob                     0       True  False   False   15/05/2020  
Alice                   5       True  False   False   15/05/2020             
John                    0       True  False   False   15/05/2020   
Bob                    10       True  False   False   16/05/2020    
Chris                   0       True  False   False   16/05/2020   
Alice                   2       True  False   False   17/05/2020

……

我需要将其汇总以获取per ,以查看哪个名称得分最高,然后是其他名称Name。我也想通过。ScoreScoreNameScoreNameDate

我的预期输出应该是:

                                    Date
Name                  Score                                            
Bob                     0        15/05/2020  
Alice                   5        15/05/2020             
John                    0        15/05/2020   
Bob                    10        16/05/2020    
Chris                   0        16/05/2020   
Alice                   2        17/05/2020

  Date            Name    Score
15/05/2020         Alice   5
                   Bob     0 
                   John    0       # preferably in desc order
16/05/2020         Bob     10
                   Chris   0
17/05/2020         Alice   2

并且

Name      Score
Bob         10
Alice       7
John        0
Chris       0

我试过用

df.groupby(['Name','Score']).sum())
df.groupby(['Name','Date','Score']).sum())

但我不确定这是正确的方法。

标签: pythonpandas

解决方案


1)您想要对各自的名称进行分组Name和求和:score

In [907]: df = df.reset_index()
In [909]: res = df.groupby('Name', as_index=False)['Score'].sum()
In [920]: res.sort_values('Score', ascending=False)
Out[920]: 
    Name  Score
1    Bob     10
0  Alice      7
2  Chris      0
3   John      0

2)你想对各自的名字进行分组nameDate总结:score

In [910]: df.groupby(['Date','Name'])['Score'].sum()
Out[910]: 
Date        Name 
15/05/2020  Alice     5
            Bob       0
            John      0
16/05/2020  Bob      10
            Chris     0
17/05/2020  Alice     2
Name: Score, dtype: int64

推荐阅读