您可以通过对每个组应用sort然后head来仅返回最大尺寸的对象 wrt size 。
在这里,我们只看前两个:
In [11]: top2_by_date = df.groupby('date').apply(lambda x: x.sort('size', ascending=False).head(2))
In [12]: top2_by_date
Out[12]:
date issues size
date
1 3 1 issue4 6
1 1 issue2 2
8 8 8 issue4 6
6 8 issue2 2
令人讨厌的是,我们在索引中有日期(as_index=False
暂时不会停止)。
In [13]: top2_by_date.index = top2_by_date.index.droplevel(0)
In [14]: top2_by_date
Out[14]:
date issues size
3 1 issue4 6
1 1 issue2 2
8 8 issue4 6
6 8 issue2 2
使用原始数据(没有大小列,您可以一次性完成)value_counts
:
In [21]: df.groupby('date').apply(lambda x: x['issues'].value_counts()[:2])
Out[21]:
date
1 issue3 2
issue1 2
2 issue2 1
issue3 1
dtype: int64
注意:如果有平局,这将任意选择。