У тебя DataFrame с 5M строк. Нужно для каждого user_id найти MAX(amount). df.groupby("user_id")["amount"].max() работает, но что быстрее на больших данных?
Pythonmediummiddle
Варианты ответа
df.groupby("user_id", sort=False)["amount"].max() — отключение сортировки даёт 2-5× ускорение, особенно когда групп много
df.apply(lambda x: x["amount"].max(), axis=1) — apply работает векторизованно над строками и обходит group-by накладные
df.set_index("user_id")["amount"].max(level=0) — индекс позволяет hash-lookup без полного скана
df.sort_values("amount", ascending=False).drop_duplicates("user_id", keep="first") — сортировка + drop_duplicates быстрее groupby на больших данных
Разбор ответа
Подробный разбор с объяснением «почему правильный ответ верный» и почему остальные неверны — после регистрации.
2475 вопросов с разбором, quiz-режим с проверкой, AI-собес и подготовка к интервью аналитика.