我有一个像这样的数据名称
id rev committer_id
date
1996-07-03 08:18:15 1 76620 1
1996-07-03 08:18:15 2 76621 2
1996-11-18 20:51:08 3 76987 3
1996-11-21 09:12:53 4 76995 2
1996-11-21 09:16:33 5 76997 2
1996-11-21 09:39:27 6 76999 2
1996-11-21 09:53:37 7 77003 2
1996-11-21 10:11:35 8 77006 2
1996-11-21 10:17:50 9 77008 2
1996-11-21 10:23:58 10 77010 2
1996-11-21 10:32:58 11 77012 2
1996-11-21 10:55:51 12 77014 2
我想按季度分组,然后在 committer_id 列中显示唯一条目的数量。目前, id 和 rev 列实际上并未使用。
我想得到如下结果 committer_id
date
1996-09-30 2
1996-12-31 91
1997-03-31 56
1997-06-30 154
1997-09-30 84
实际结果按每个时间段的条目数汇总,而不是按唯一条目汇总。我使用以下内容:
df[['committer_id']].groupby(pd.Grouper(freq='Q-DEC')).aggregate(np.size)
无法确定如何使用np.unique。
请提出任何想法。
最佳,
-
答案 0 :(得分:2)
df[['committer_id']].groupby(pd.Grouper(freq='Q-DEC')).aggregate(pd.Series.nunique)
应该适合你。或df.groupby(pd.Grouper(freq='Q-DEC'))['committer_id'].nunique()
您对np.unique
的尝试无效,因为它会返回一系列唯一项。 agg
的结果必须是标量。所以.aggregate(lambda x: len(np.unique(x))
可能也会起作用。