python - 如何对python中数据框列中的唯一值执行函数
问题描述
我有大约 500 万条记录的数据,如下图所示,我需要获取新数据框中每个 ID 的最大值和平均值,以便每个 ID 只有一个值
我对 python 和编程很陌生,这个小组很有帮助,但我似乎没有找到这个特定问题的相关答案。谢谢
解决方案
这应该这样做:
import numpy as np
import pandas as pd
# create dummy data
ids = [1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4]
values = [13,21,34,22,34,2,3,34,12,45,45,23,67,76,32,23,80]
df = pd.DataFrame({'ID': ids, 'Values': values})
df = df.groupby('ID').agg({'Values': [min, max, np.mean]}) # group by on ID and calculate new columns min, max, mean for the values columns
df.columns = df.columns.droplevel(0) # get rid of the multilevel columns due to the grouping
df.reset_index()
编辑:感谢 ALollz 指出以下快捷方式(避免多级索引):
df = df.groupby('ID')['Values'].agg([min, max, np.mean]) # group by on ID and calculate new columns min, max, mean for the values columns
df.reset_index()
让我知道是否有任何步骤需要详细说明。
推荐阅读
- haskell - “sprint” GHCi 命令中的“s”是什么意思?
- javascript - 从回调到 Hapi v17 中的异步/等待
- ios - 如何从首选字体创建浅色字体?
- angular - Angular 4.4.6 动画过渡不会发生
- postgresql - 我对 COUNT('e.id') 或 COUNT(e.id) 的查询有不同的结果
- c# - Nunit:TestCaseSource 不希望生成所有测试用例?
- angularjs - AngularJS - uibmodal - 从模态拖动并拖放到父级
- javascript - 验证文本框的正则表达式后 ASP.NET 禁用按钮
- unicode - 为什么拉丁小写字母 DOTLESS I, COMBINING DOT ABOVE 不能标准化为 NFC 形式的“i”?
- c# - 独立身份服务器 4 用户名查找