python - 如何使用匹配值对数据进行分组
问题描述
我是使用 Pandas 的新手,我正在尝试重构数据框以删除第一列中的重复项,同时保留每个重复项的数量,并在第二列中取值的总和。
例如,我希望转换看起来像这样:
[在]:
+---+------+-------+
| | Name | Value |
+---+------+-------+
| 0 | A | 5 |
| 1 | B | 5 |
| 2 | C | 10 |
| 3 | A | 15 |
| 4 | A | 5 |
| 5 | C | 10 |
+---+------+-------+
[出去]:
+---+------+--------+-------+
| | Name | Number | Total |
+---+------+--------+-------+
| 0 | A | 3 | 25 |
| 1 | B | 1 | 5 |
| 2 | C | 2 | 20 |
+---+------+--------+-------+
到目前为止,我还没有找到一种有效的方法来做到这一点。(甚至是一种工作方法。)
我将处理几十万行,所以我需要找到一个非常有效的方法。
解决方案
groupby 上的 pandas agg 功能就是您想要的。 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.agg.html
这是一个例子:
import pandas as pd
df=pd.DataFrame({'Name':['A','B','C','A','A','C'],
'Value':[5,5,10,15,5,10]})
df.groupby('Name').agg(['count','sum'])
希望有帮助。
推荐阅读
- node.js - 为什么我不能在 Mongo 管道匹配中使用 $nin、$exists 等?
- python - API Get 方法以 JSON 格式获取主题标签计数大于 MongoDB 中的所有推文
- javascript - 为 object.value 填充以返回真实的断言
- excel - 如果语句仅在选择在特定列内时执行操作
- sql - Oracle 没有从比较到日期的结果
- terraform - 处理 Terraform AMI 看起来返回一个空列表
- r - 根据数据框中不同行的变量值在 R 中创建新变量
- autodesk-forge - Forge API “Urn 格式不正确。”
- python - 如何在字符串中累积一系列数字并将它们转换为一个数字?
- netbeans - 窗口菜单下的服务不起作用