首页 > 解决方案 > Pandas GroupBy - 获取名称为“count”的列

问题描述

我尝试将 DataFrame 中每个类别的计数计算为:

data = {'col_1': ['a', 'b', 'c', 'd','c'],'col_2': [3, 2, 1, 0, 4],'col3':[99,88,77,66,55]}
df = pd.DataFrame.from_dict(data)
print(df.groupby(['col_1']).count())


Output:

       col_2  col3
col_1             
a          1     1
b          1     1
c          2     2
d          1     1

为什么有两列 "col_2" 和 "col_3" 并且只有一列名为 "count" ?

希望的输出是:

  col_1        count     
    a          1     
    b          1
    c          2
    d          1

标签: pythonpandas

解决方案


你可以做:

print(df.groupby(['col_1'],as_index=False).agg(count=('col_2','count')))

或者

print(df.groupby(['col_1'],as_index=False).size().rename(columns={'size':'count'}))

输出:

col_1      count     
  a          1     
  b          1
  c          2
  d          1

推荐阅读