решить как-то при помощи groupby или pivot table, но не получается.
Третий день мучаюсь.
У меня есть датафрейм. Здесь собраны данные о том, как студенты проходят курсы на степике.
Step_id-это открытые студентами шаги.
timestamp - это время, когда студенты открывали эти шаги.
User_id- это id юзера.
Мне нужно найти список шагов, на которых отвалилось больше всего пользователей.
Соответственно, моя задача:
1) Сгруппировать датафрейм по user_id (вроде получается)
2) выбрать в группе по каждому юзеру максимальное значение timestamp и оставить соответствующее ему значение step_id
3) Дальше уже снова сгруппировать.
Я застряла на шаге 2. : не получается взять агрегирующую функцию с максимальным таймстемпом. Как это сделать, как думаете?
Отсортировать по юзер ид, а потом по степу
Мб вот это решение подойдёт https://stackoverflow.com/questions/49263437/how-to-get-value-of-a-column-based-on-the-maximum-of-another-column-in-case-of-d
спасибо, щяс попробую
Юля, спасибо большое! Я попробовала, но у меня получился неверный ответ. Как думаете, где я ошибаюсь?
А в чем ошибка в ответе?
Правильный ответ должен быть 31978, а у меня 32815 Сама задача тут (если вдруг Вам интересно) https://stepik.org/lesson/223834/step/7?thread=solutions&unit=196653
судя по комментам там нужен датасет submissions с фильтрацией на определенное условие (неверное решение), мб в этом может быть дело? метод решения кмк у вас правильный
idxmax ну никак не соотносится с предложенным ранее решением, которое максимально эффективно
Тоже прохожу этот курс) Там же в комментариях на степике к этому шагу выложено достаточно много алгоритмов решения, с разными подходами. Плюс, если у Вас уже есть верный ответ, то можно же посмотреть верные решения других учащихся )
Обсуждают сегодня