Вычислить среднее значение для объекта Groupby в Pandas после применения .nsmallest (2) - PullRequest
1 голос
/ 06 августа 2020

У меня есть pandas DataFrame, в котором хранятся результаты тренировок многих спортсменов. Теперь я хочу сгруппировать данные по BIB # и COURSE, поэтому я пишу:

grupper = df.groupby(['BIB#', 'COURSE'])

Затем я хочу найти два лучших прогона (столбец = 'FINI SH) для каждого 'BIB' и 'COURSE', поэтому я пишу:

x = grupper.apply(lambda x: x.nsmallest(2, 'FINISH'))

Это дает мне следующее:

Результат

Затем я хочу вычислить среднее значение двух лучших пробежек для каждого спортсмена для каждого из BIB и COURSE, но не могу найти подходящего решения. Я попытался применить mean (), как в приведенном ниже коде, но он вычисляет среднее значение для каждого столбца в фрейме данных, и это не то, что я хочу.

x = grupper.apply(lambda x: x.nsmallest(2, 'FINISH')).mean()

Что я могу сделать?

1 Ответ

1 голос
/ 06 августа 2020

Я думаю, вам нужно передать mean в метод apply после nsmallest:

x = grupper['FINISH'].apply(lambda x: x.nsmallest(2).mean())

В вашем решении также должно работать:

x = grupper.apply(lambda x: x.nsmallest(2, 'FINISH').mean())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...