在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
有什么想法吗?谢谢!
答案 0 :(得分:3)
在groupby
的聚合函数中使用这种基于字典的格式。
df.groupby('id', as_index=False)['id'].agg({'id_count':'count'})
id id_count
0 abc 2
1 def 1