假设我有这个表,我将其加载到Pandas DataFrame中:
name id ...
n1 1
n1 2
n2 3
n2 4
n2 5
...
现在,我想检索每个唯一名称的ID数。
在SQL中,我做(如果错误,请纠正我)
SELECT name, id, COUNT(*)
FROM table
GROUP BY name, id;
我如何与熊猫达到同样的目标? 这样:
df.groupby(['name', 'id'])['name', 'id'].count()
给了我单独的姓名和ID。
答案 0 :(得分:1)
您希望groupby
在' name'然后在' id'上拨打count
这将返回值的计数:
In [38]:
df.groupby('name')['id'].count()
Out[38]:
name
n1 2
n2 3
Name: id, dtype: int64
您有效的做法是对“姓名”和“...”进行分组。并且' id'所以唯一值是两列的组合,你要求每个名称的id计数不是一回事
In [41]:
df.groupby(['name','id'])['name','id'].count()
Out[41]:
name id
name id
n1 1 1 1
2 1 1
n2 3 1 1
4 1 1
5 1 1