应用"group by"后选择前 n 个或最后一个 n 个组



逐列应用后,我想提取特定数量的组。例如前2或3组。

我有一个数据帧:

id性别价值1 f 1123第1页,共10页2米1232米1542米1653米6543米9874 f 76544 f 76544 f 7654

我想要这种

id性别价值2米1232米1543米6543米987……..

我的代码是:

dtFrame2 = dtFrame.groupby('id').head(2)
dtFrameMale = dtFrame2.loc[dtFrame2.gender=='male']
temp = maleGroups.filter(lambda x: len(x) == 2)

最后一个语句给了我两行的所有组,但在那之后,我想提取前两个、三个或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

相关内容

最新更新