【问题标题】:count entries from each group using pandas.dataframe.groupby.count使用 pandas.dataframe.groupby.count 计算每个组的条目
【发布时间】:2021-03-07 22:34:21
【问题描述】:

注意:我很抱歉错过了无意错字的引文。它在下面更正。感谢 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 函数。

对此有何解释?谢谢。

【问题讨论】:

    标签: pandas pandas-groupby


    【解决方案1】:

    你应该做双引号

    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
    

    【讨论】:

      猜你喜欢
      • 2015-03-08
      • 1970-01-01
      • 2021-03-27
      • 1970-01-01
      • 2014-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多