TGViewer
Мир аналитика данных Мир аналитика данных @analysts_world · 4.56K subscribers
Post #52 1.83K
Хочется красиво..
Задача была следующая – вытащить три топ клиента за год в каждой нише. Сначала – sql запросом (с сортировкой order by 3 desc по уменьшению) сформировала выгрузку всех клиентов с оборотом и с указанием ниши. Получилась такая табличка (df):
номер клиента | ниша | сумма
А вот потом задумалась, а как мне взять топ три клиента из каждой ниши. Просто head мне же даст первые три школы из всех, они могут быть из одной ниши. Не подойдет.
Я сделала быстро и надежно
df1 = df[df['ниша'] == 'инфобизнес'].head(3)
df2 = df[df['ниша'] == 'астрология'].head(3)
И так по каждой нише, а потом concat просто их все соединила.

Позже "потыкавшись", поняла, что все-таки groupby срабатывает и даже справляется быстрее. Особенно когда много категорий, то задолбаешься их соединять.
df.groupby('ниша').head(3) выдает трех клиентов в каждой нише в порядке убывания сумм по клиенту. На картинке слева.
А еще крутой способ потом обнаружила с помощью lambda и nlargest:
Продолжение->
  • 👍 22
  • ❤ 3
  • 🔥 2
More from @analysts_world
  1. Sep 21, 2026📊 Задачка с собеседования Ну что, по итогам голосования большинство хотят задачки и sql.…
  2. Sep 14, 2026Post #345
  3. Sep 14, 2026Что-то я тут прям зачастила с A/B тестами 😅 Смотрю на последние посты и такое чувство, чт…
  4. Sep 1, 2026🎒 С 1 сентября, друзья! Сегодня как раз отправила своих детей в школу – и вот это чувство…
  5. Aug 24, 2026Вне выборки Обычно здесь про SQL, Python и AB-тесты. Но не всё, что важно, попадает в выбо…
  6. Aug 20, 2026Fuckup Night от создателей Trisigma, Ares и karpov.courses Согласитесь, ивенты, где все де…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →