TGViewer
Мир аналитика данных Мир аналитика данных @analysts_world · 4.56K subscribers
Post #158 3.15K
❓ Как правильно выбирать топ-клиентов с прерываемыми индексами?

Сперва кажется, что за бред про прерываемые индексы? Сейчас расскажу где можно ошибиться 😜
А кто не ошибается, тот не работает! Главное вовремя понять, что тут что-то не то.

💡 Итак, задача: У нас есть список клиентов и их годовые обороты. Мы хотим отфильтровать тех, у кого оборот, допустим, больше 1 миллиона, отсортировать их по убыванию и выбрать топ-3 самых крупных клиентов.

Создадим данные для наглядности:
import pandas as pd
# Создаем исходный DataFrame
data = {
'client_id': [101, 102, 103, 104, 105],
'client_name': ['Client A', 'Client B', 'Client C', 'Client D', 'Client E'],
'turnover': [1200000, 500000, 1500000, 2000000, 3000000]
}
df = pd.DataFrame(data)

📋 Шаг 1: Фильтрация и сортировка клиентов

Сначала отфильтруем клиентов с оборотом более 1 миллиона и отсортируем их по обороту от большего к меньшему:
filtered_df = df[df['turnover'] > 1000000].sort_values('turnover', ascending=False)


Теперь у нас есть DataFrame с клиентами, у которых оборот превышает 1 миллион, отсортированный по убыванию

🚫 Ошибка: Что будет, если для выбора топ-3 теперь использовать .loc?
incorrect_top_3 = filtered_df.loc[:3]


Метод .loc[:3] пытается выбрать строки с индексами 0, 1, 2, 3. Однако, после фильтрации и сортировки, индексы строк изменились, и это приведет к выбору не тех строк!

✅ Правильный подход: Используем .iloc, чтобы выбрать первые 3 строки по их позициям:
correct_top_3 = filtered_df.iloc[:3]


С помощью .iloc мы гарантированно получаем топ-3 клиента по их позициям в отсортированном DataFrame, игнорируя индексы.

✨ Вывод: Используйте .iloc для выбора строк по позициям, особенно после фильтрации, группировки или сортировки данных, когда индексы идут не подряд. Тогда результат действительно будет топовым! 🤪
  • 👍 31
  • ❤‍🔥 6
  • ❤ 1
  • ✍ 1
  • 😴 1
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 →