pandas - 在 groupby 数据帧上聚合一行代码
问题描述
那么有没有办法用一行代码来做以下事情:
我在数据框中有以下数据:
ID First Last Program
1NC Jim Bo DM
1NC Jim Bo DM
1NC Jim Bo DM
1NC Jim Bo DM
2bd bob El HX
2bd bob El HX
2bd bob El HX
2bd bob El HX
3RF jack doe DM
3RF jack doe DM
3RF jack doe DM
我想按 ID 分组,然后通过唯一程序在单独的列表或字典中获取每个组的计数:
DM = [4,3]
HX = [4]
df.groupby('ID').counts()
给我每个组的计数,现在如何通过程序中的唯一值键(DM,HX)将计数转储到列表中?
我试图做这样的事情,但没有奏效:
programs = pd.unique (df['Program'].values)
df.groupby('ID').get_group(programs)
解决方案
这是一种方法
df.groupby(['Program','ID']).size().groupby(level=0).agg(list)
Program
DM [4, 3]
HX [4]
dtype: object
推荐阅读
- javascript - 以多于个位数的数字排序
- selenium-webdriver - 页面工厂如何验证元素?
- .net-core - 使用 .NET 核心 DLL 的 Electron 和 edge.js 会出现错误
- python - 如何使用python获取文件夹中的工作表ID数组
- amazon-web-services - VPC 中 AWS lambda 函数的外部调用
- sql - 比较同一表中的两列,反之亦然
- arrays - 要移除的最小块,以便在集水器中没有水被困住
- python - 为什么将 `Series.apply` 应用于所有类别的集合而不仅仅是当前切片?
- c++ - 在 gsoap 2.8.59 中填充结构
- regex - 与 Linux 中的 RegExp 匹配使用 iname 查找命令