Pandas: получить 10 лучших значений ПОСЛЕ группировки

У меня есть фрейм данных pandas с идентификатором столбца и значением столбца. Он уже отсортирован сначала по идентификатору (по возрастанию), а затем по значению (по убыванию). Что мне нужно, так это 10 лучших значений для каждого идентификатора.

Я предполагал, что что-то вроде следующего будет работать, но это не так:

df.groupby("id", as_index=False).aggregate(lambda (index,rows) : rows.iloc[:10])

Я получаю просто список идентификаторов, столбца значений (и других столбцов, которые я пропустил для вопроса) больше нет.

Есть идеи, как это можно сделать, не перебирая каждую из отдельных строк и не добавляя первые десять в другую структуру данных?


person SGer    schedule 16.10.2015    source источник
comment
Вы должны привести пример фрейма данных в вопросе.   -  person Anand S Kumar    schedule 16.10.2015


Ответы (1)


Это то, что вы ищете?

df.groupby('id').head(10)
person Colin    schedule 16.10.2015