使用pandas.dataframe.groupby.count对每个组中的条目进行计数

使用pandas.dataframe.groupby.count对每个组中的条目进行计数,pandas,pandas-groupby,Pandas,Pandas Groupby,注:我很抱歉遗漏了这句话,这是一个无意的打字错误。下面对其进行了更正。谢谢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('i

注:我很抱歉遗漏了这句话,这是一个无意的打字错误。下面对其进行了更正。谢谢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()

我得到

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


对此有何解释?谢谢。

你应该做双引号

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
df.id.value_counts()
Out[107]: 
366    4
3      1
2      1
1      1
Name: id, dtype: int64