使用pandas dataframe按分组计数,并为列命名

5
在Python 3.6和Pandas 0.19.0中有一个数据框架"df"。
id
abc
abc
def

我正在尝试创建一个包含id_count列的数据帧,这与SQL相同:
SELECT id, COUNT(1) AS id_count FROM table group by id

理想的回报:

id  id_count
abc 2
def 1

我已经尝试过:

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

返回值

id
abc 2
def 1

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

返回值

0    2
1    1

有什么想法吗?谢谢!
1个回答

5

在使用 groupby 函数时,使用基于字典的格式。

df.groupby('id', as_index=False)['id'].agg({'id_count':'count'})

    id  id_count
0  abc         2
1  def         1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接