python - 分组并跨数据框中的列求和
问题描述
我正在使用这个数据框:
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
。我也想通过。Score
Score
Name
Score
Name
Date
我的预期输出应该是:
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())
但我不确定这是正确的方法。
解决方案
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)你想对各自的名字进行分组name
和Date
总结: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
推荐阅读
- c# - 无法在运行时统一创建和保存动画文件
- android - Android Room:用新架构替换现有架构(迁移和所有)?
- php - phpspreadsheet没有检索某些单元格的值
- php - 2个不同表的乘法和结果为假
- javascript - 附加到我的电子邮件中的这个远程 javascript 做什么?“http://rum-static.pingdom.net/prum.min.js”
- recursion - Erlang、Last Call Optimization、lambda 函数以及如何防止堆栈增长
- node.js - 如何在 cPanel 上托管节点反应 Web 应用程序?
- python - 如何在python中使用其他文件的字符串打开文件?
- java - 保护 JMX 并防止远程客户端使用 javax.management.loading.MLet 注册任意 Mbeans JMX
- regex - 匹配包含混合文本和数字的 URL 产品着陆页,同时排除产品变体