python - Pandas 中的分组和求和

标签 python pandas group-by

假设我有一个像这样的数据框:

df= { 'class': ['A','A','A','A','A','B','B','B','B'],
         'ID':[1,2,2,3,3,4,4,4,5]}  

Class ID
A     1 
A     2 
A     2 
A     3 
A     3 
B     4 
B     4 
B     4 
B     5 

我想将数据总结如下:

Class  count(distinct(ID))
A      3
B      2

我知道这很微不足道,但我被困在这里:

df.groupby(by=['Class', 'ID']).count()

这给了我

enter image description here

由于某种原因,我似乎无法在分组后得到总和。 谢谢。

最佳答案

我认为您正在寻找 nunique :

In [11]: df.groupby("Class")["ID"].nunique()
Out[11]:
Class
A    3
B    2
Name: ID, dtype: int64

关于python - Pandas 中的分组和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34235603/

相关文章:

python - 如何在 Panda Data 框中合并两列时删除 nan 值?

Python。从 Pandas 列中提取字符串的最后一位

两张表的 MySQL 并集,一张带有时间戳,一张带有日期

mysql:在事件日志中查找开始结束时间 - 按 session 时间分组

python - Python中重复列表中的数据处理

python - Pandas 使用 df.loc 保留原始行索引

python - 如何在Windows下使用所有外部编译Python?

python - 在 Pandas 数据框中,使用 bool 输出,如何检测两个不同列(行)的交叉?

javascript - Json按2个字段格式化

python - 如何将我的自定义菜单添加到门户用户菜单列表?