首页 > 解决方案 > 使用 pandas.dataframe.groupby.count 计算每个组的条目

问题描述

注意:我很抱歉错过了无意错字的报价。它在下面更正。感谢 Beny 指出错字。

在将 groupby 应用于列后,我试图计算每个组中的条目数,但得到了一些无法解释的东西。请帮忙。下面是我的代码

data=[366, 366, 366, 366, 1, 2, 3]
df=pd.DataFrame(data, columns=['id'])
df.groupby('id').count()

我得到了

id
1
2
3
366

我还发现只有当我做类似的事情时

df.groupby('id')['id'].count()

我有

id      count
1        1 
2        1
3        1 
366      4

看起来是因为 groupby 已应用于“id”,因此除非明确指出,否则无法应用 agg 函数。

对此有何解释?谢谢。

标签: pandaspandas-groupby

解决方案


你应该做双引号

df.groupby('id').size()
Out[106]: 
id
1      1
2      1
3      1
366    4
dtype: int64

当传递 id 时,它是对象的 id 而不是id数据框中的

更像

df.id.value_counts()
Out[107]: 
366    4
3      1
2      1
1      1
Name: id, dtype: int64

推荐阅读