Python 应用“后选择第一个或最后n个组”;分组方式;

Python 应用“后选择第一个或最后n个组”;分组方式;,python,python-2.7,numpy,pandas,Python,Python 2.7,Numpy,Pandas,我想在按列分组后提取特定数量的组。例如,前2或3组 我有一个数据框: id gender value 1 f 1123 1 f 10 2 m 123 2 m 154 2 m 165 3 m 654 3 m 987 4 f 7654 4 f 7654 4 f 7654 ... ... .... 最后一条语句给出了所有具有两行的组,但在此之后,我想提取前两个、三个或n

我想在按列分组后提取特定数量的组。例如,前2或3组

我有一个数据框:

id gender value 1 f 1123 1 f 10 2 m 123 2 m 154 2 m 165 3 m 654 3 m 987 4 f 7654 4 f 7654 4 f 7654 ... ... .... 最后一条语句给出了所有具有两行的组,但在此之后,我想提取前两个、三个或n个组。

类似这样的内容

In [60]: s = df[df['gender'] == 'm'].groupby('id').size()

In [61]: s.name = 'size'

In [62]: df2 = df.join(s, on='id')

In [63]: df2[df2['size'] == 2]
Out[63]: 
   id gender  value  size
5   3      m    654     2
6   3      m    987     2

谢谢你的回答。但是我想做一个补充,例如,如果有很多这样的实例,那么我可以通过这个语句df2[df2['size']==2][:2*numberofInstances]得到它。
dtFrame2 = dtFrame.groupby('id').head(2)
dtFrameMale = dtFrame2.loc[dtFrame2.gender=='male']
temp = maleGroups.filter(lambda x: len(x) == 2)
In [60]: s = df[df['gender'] == 'm'].groupby('id').size()

In [61]: s.name = 'size'

In [62]: df2 = df.join(s, on='id')

In [63]: df2[df2['size'] == 2]
Out[63]: 
   id gender  value  size
5   3      m    654     2
6   3      m    987     2