У меня есть фрейм данных pandas с идентификатором столбца и значением столбца. Он уже отсортирован сначала по идентификатору (по возрастанию), а затем по значению (по убыванию). Что мне нужно, так это 10 лучших значений для каждого идентификатора.
Я предполагал, что что-то вроде следующего будет работать, но это не так:
df.groupby("id", as_index=False).aggregate(lambda (index,rows) : rows.iloc[:10])
Я получаю просто список идентификаторов, столбца значений (и других столбцов, которые я пропустил для вопроса) больше нет.
Есть идеи, как это можно сделать, не перебирая каждую из отдельных строк и не добавляя первые десять в другую структуру данных?