python-3.x - 如何在同一列值内分组然后求和?
问题描述
我想像 SQL 一样使用 Pandas (Python3)。我有一张下表。
df1
name, score
Tom, 95
Jane, 88
Tom, 30
Lisa, 50
Kyle, 78
Jane, 70
如果名称列具有相同的名称,我期望的是按名称和总分值分组,然后按分数排序。因此,
df1
name, score
Jane, 158
Tom, 125
Kyle, 78
Lisa, 50
汇总 Tom 和 Jane 并将每个值的分数相加。就像下面的 SQL。
SELECT name, SUM (score) OVER (PARTITION BY name) as _score
FROM ....
WHERE ....
GROUP BY name
ORDER BY _score DESC
我尝试了以下但没有奏效。
df1.sort_values(by=['name'],ascending=False).sum()
我怎样才能在熊猫中做到这一点?
解决方案
df_1 = {'name': ['tom', 'jane', 'tom', 'lisa', 'kyle', 'jane'],
'score': [95, 88, 30, 50, 78, 70]}
df_1 = pd.DataFrame(df_1)
print(df_1.groupby(['name']).sum().sort_values('score', ascending=False))
推荐阅读
- php - 带有 PKCS7/PKCS5 填充的 AES 256 GST 电子发票
- c - 循环遍历内核空间中的链表
- javascript - 将一种 HTML 结构转换/转换为另一种结构的正确方法是什么?
- javascript - 为什么即使它的反应量不合适,它仍然会放在右舷?不和谐.js
- java - 从目录打开 HTML 文件到 webview Android studio
- python - 本地编辑器上的“ModuleNotFoundError”,但在 Jupyter 中没有
- amazon-web-services - AWS::WAFv2::WebACLAssociation ResourceArn 用于 CloudFormation 中的应用程序负载均衡器
- r - 基于 r 中单元格中字符数的子集数据
- php - 使用 volley 在 android studio 上显示 MySQL 数据的问题
- mysql - 如何根据开始和结束条件之间的值查找行的值?