首页 > 解决方案 > 在 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)

标签: pandasdataframeiterator

解决方案


这是一种方法

df.groupby(['Program','ID']).size().groupby(level=0).agg(list)
Program
DM    [4, 3]
HX       [4]
dtype: object

推荐阅读