TGViewer
Мир аналитика данных Мир аналитика данных @analysts_world · 4.56K subscribers
Post #46 1.99K
🍀 Как мне помогла теория вероятности.
Прислали мне тут вот такую задачку – отобрать всех клиентов, у которых нет заявок на определенный доп.функционал или тех, у кого заявку одобрили, но клиент пока отключил у себя эту опцию. И еще у них среднемесячная выручка с начала 2022 года должна быть больше 800 тыс. руб.
Сначала я нашла тех, у кого больше 800 тыс.руб. в мес. - df_more_800

А вот потом в мозгу у меня все смешалось – что с чем соединить? 😜 И тут я составила табличку вероятностного пространства всех возможных вариантов, чтобы наглядно понять, как вытащить данные.
Получилась вот такая таблица:
| Есть заявка| Одобрена | Клиент включил опцию у себя |
| Есть заявка| Одобрена | Клиент НЕ включил опцию у себя |
| Есть заявка| НЕ одобрена| - |
| НЕТ заявки | - | - |

Сначала ищу клиентов, кто вообще подал заявку.
query = f"""
select account_id
from sales.request
where account_id in {tuple(df_more_800['account_id'])}
"""
df_request = pd.read_sql(query, connection)

Потом я нашла аккаунты тех клиентов, кто не включил опцию:
query = f"""
select account_id
from sales.request
where account_id in {tuple(df_more_800['account_id'])}
and status = 1 -- одобренность заявки
and active = 0 -- клиент отключил у себя
"""
df_off = pd.read_sql(query, connection)
Исключим с помощью isin те школы, кот подавали заявку, чтобы оставить тех, кто НЕ ПОДАВАЛ ЗАЯВКУ . Вот этот знак (~) оставляет в df_more_800 все, кроме тех аккаунтов, что указаны в df_request

df_wo_application = df_more_800[~df_more_800['account_id'].isin(tuple(df_request['account_id']))]

А теперь объединим с помощью concat тех, кто не подавал заявку и тех, кто выключил у себя эту опцию. Это и будет финалочка! 👌
df_final = pd.concat([df_wo_application, df_off], ignore_index = True)
  • 👍 18
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 →