Simulative – Telegram
7.38K subscribers
1.71K photos
71 videos
1 file
1.27K links
Привет! Мы — образовательная платформа в сфере аналитики Simulative: simulative.ru

Создаём курсы-симуляторы, где обучаем не на «апельсинках», а на кейсах из реального бизнеса.

Наш уютный чат: @itresume_chat
Поддержка: @simulative_support
Download Telegram
🚀 Ищем преподавателя по AB-тестам и аналитике! 🚀

Мы, команда IT Resume, ищем энергичного и вдохновленного преподавателя, готового поделиться своими знаниями и страстью к анализу данных и AB-тестам!

📋 Обязанности:

- Подготовка обучающих материалов
- Составление интересных задач по теме AB-тестирования
- Запись видеоуроков для наших студентов

📌 Требования:

- Опыт работы на аналогичных курсах приветствуется, но не обязателен
- Опыт работы с AB-тестами является большим плюсом

💼 Условия:

- Сдельная оплата
- Гибкий график и возможность работы из дома
- Оплата за готовый материал
- Поддержка студентов, если вам интересно, оплачивается отдельно и помесячно

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

Присоединяйтесь к нам и помогайте студентам освоить мир аналитики и AB-тестирования! 🔥
4🔥4
🔥 Ошибки при использовании джоинов 🔥

Давайте обсудим некоторые ключевые аспекты работы с джоинами в SQL, на которые стоит обратить внимание, чтобы избежать ошибок и недоразумений.

🔑 Сохранение данных в приоритете

При написании запросов с джоинами, особенно с транзитивными связями, всегда задавайте себе вопрос:

Какие данные мне важно не потерять?

Выбор правильного типа джоина имеет огромное значение, потому что неверный выбор может привести к некорректным результатам. Часто бывает так:

1️⃣ Вы выбираете джоин, который кажется логичным.

2️⃣ Вы не замечаете потенциальных проблем.

Давайте рассмотрим этот момент на примере:

SELECT *
FROM problem p
JOIN page p2
ON p.page_id = p2.id
JOIN company c
ON p.company_id = c.id

На первый взгляд, этот запрос кажется корректным, и результаты выглядят нормально. Однако, если внимательно проанализировать, вы увидите, что множество записей из таблицы problem просто исчезли 😱

⁉️ Почему так произошло?

Что, если в таблице problem есть строки, в которых company_id = NULL? Тогда такие строки будут исключены из результата, ведь в таблице company поле id - первичный ключ и не содержит NULL.

❗️Чтобы избежать потери данных, всегда помните о выборе правильного типа джоина:

SELECT *
FROM problem p
JOIN page p2
ON p.page_id = p2.id
LEFT JOIN company c
ON p.company_id = c.id

Используя LEFT JOIN, вы сохраните все записи из problem и соответствующие им записи из company, где problem.company_id=NULL, будут иметь пустые значения.

Помните об этом важном аспекте при работе с джоинами, чтобы получать точные и полные результаты!

🔗 Узнайте больше полезностей в Симуляторе 👉 «Аналитик данных» 👈

#sql
17🔥9👍7🤩4
🔥 Базовая Шпаргалка по Pandas 🔥

Pandas - один из самых основных и важных инструментов для работы с данными в Python. Он предоставляет множество удобных функций для загрузки, обработки, и анализа данных.

Мы собрали шпаргалку, в которой все основные функции, которые пригодятся вам в повседневной работе с Pandas:

Импорт данных: Загрузка данных из разных источников.

Исследование данных: Ознакомление с данными, просмотр первых и последних строк, получение информации о типах данных.

Извлечение информации из датафреймов: Выбор столбцов и строк, выполнение различных операций.

Добавление и удаление данных: Добавление новых столбцов и строк, удаление лишних данных.

Фильтрация: Выбор данных по условию, множественные условия.

Сортировка: Сортировка данных по столбцам, множественная сортировка.

Агрегирование: Группировка данных, вычисление статистических показателей, подсчет уникальных значений.

И для удобства мы сделали для вас notebook 😊

Сохраняйте и пользуйтесь 👇

https://colab.research.google.com/drive/1XOF8oQB3kzs0Yxt17XdtGy8IFNudvp4c?usp=sharing

Если у вас есть какие-либо дополнения, не стесняйтесь оставлять в комментариях! 🐼

#python #pandas
👍15🔥86
Персональная онлайн-экскурсия в Симулятор 🔥

Небольшая предыстория - на этой неделе я выбирал себе курс по английскому языку. Просмотрел более 20 компаний, сходил на вебинары, посмотрел на демо-версии. И знаете, что больше всего смущает и останавливает от покупки?

А то, что только после покупки я узнаю, за что я реально заплатил и что реально получил 🥲 Получается, беру кота в мешке за N тысяч рублей. Волнительно. Поэтому мы решили запустить для вас бесплатную онлайн-экскурсию в наш Симулятор «Аналитик данных»! 😍

За 20 минут на онлайн-созвоне в Google Meet/Zoom мы:

🔸Покажем все обучающие материалы, LMS, рабочие чаты и примеры выполненных работ
🔸Проанализируем вашу текущую ситуацию, уровень знаний и желаемый карьерный результат
🔸Составим список точных шагов, которые приведут вас к нужному результату
🔸Поможем приоритизировать обучение и выстроим четкий образовательный трек

🔗 Записаться на экскурсию: https://forms.gle/qSyfrudojoZpodYaA

Хотите уже на этапе обучения решать кейсы из реального бизнеса? Запишитесь к нам на онлайн-экскурсию - мы поможем сделать обучение эффективным!

🎁 Бонусы для участников экскурсии:

- Тестовый доступ к Симулятору «Аналитик данных»
- Методичка по продуктовым метрикам
- Методичка по рекламным метрикам
- Гайд по Retention
- Доступ к закрытой библиотеке лучших книг по SQL

🔗 Записаться на экскурсию: https://forms.gle/qSyfrudojoZpodYaA
🔥54👍2👎1
🔥 Симулятор «Аналитик данных» — обучение стало доступнее!

Спешим поделиться классной новостью! Мы расширили способы оплаты обучения и теперь:

→ Мы принимаем платежи с любых карт, с российских и зарубежных.

→ Предоставляем беспроцентную рассрочку на обучение на 3, 6, 12 и 24 (!) месяца. Это не кредит — все проценты мы берем на себя. Сотрудничаем с банками Тиньков, Сбером и Хоум Кредит банком.

→ Можем давать вам внутреннюю рассрочку, если у вас нет возможности взять ее от РФ банка — просто напишите нам на почту clients@itresume.ru, мы поможем 💪🏻

→ Если вы из Беларуси и вам необходима рассрочка — напишите нам на почту clients@itresume.ru 😉

Симулятор «Аналитик данных» — это обучающая программа, где студенты:

🔹 учатся аналитике данных на реальных коммерческих задачах и кейсах;
🔹 пополняют своё портфолио и работают с универсальным инструментарием;
🔹получают оффер после обучения, не имея за плечами настоящего опыта на стороне компании.

А вы готовы присоединиться к нам? 👉 ссылка
4🔥3🤩2👍1👎1
🔥 Заглядываем в Мир версионного контроля

Привет, коллеги - разработчики! Сегодня мы рассмотрим важные состояния файлов в Git.

Git - это ядро современного сотрудничества и версионного контроля в мире программирования.

1️⃣ Неотслеживаемое (Untracked)

- Это файлы, которые созданы, но Git не знает о них. Они находятся в состоянии "untracked".
- Чтобы начать отслеживание файла, используйте команду git add <имя файла>, и он перейдет в состояние "staged".

2️⃣ Измененное (Modified)

- Если вы изменяете файлы, которые уже отслеживаются Git, они переходят в состояние "modified".
- Git сохраняет информацию о том, какие строки и какие части файлов были изменены.

3️⃣ Подготовленное (Staged)

- Здесь находятся файлы, готовые к следующему коммиту. Вы выбираете, что включить в коммит.

4️⃣ Закомиченное (Committed)

- После коммита файлы становятся закомиченными и сохраняются в истории проекта.
- Состояние "staged" становится пустым, но состояние "modified" может содержать изменения.

Git - это не просто инструмент, это язык, на котором разговаривают разработчики 👩‍💻🧑‍💻👨‍💻

Не забудьте поделиться вашим опытом в комментариях!

_ _ _ _ _ _ _ _ _ _ _

Хотите посмотреть, как устроен наш Симулятор «Аналитик данных» и понять, как вы можете бустануть свою карьеру в аналитике с помощью обучения на реальных бизнес-кейсах? Просто запишитесь на нашу бесплатную онлайн-экскурсию!

За час на онлайн-созвоне в Google Meet/Zoom мы:

🔸Покажем все обучающие материалы, LMS, рабочие чаты и примеры выполненных работ
🔸Проанализируем вашу текущую ситуацию, уровень знаний и желаемый карьерный результат
🔸Составим список точных шагов, которые приведут вас к нужному результату

🔗 Записаться на экскурсию: https://forms.gle/qSyfrudojoZpodYaA

🎁 Бонусы для участников экскурсии:

- Тестовый доступ к Симулятору «Аналитик данных»
- Методичка по продуктовым метрикам
- Методичка по рекламным метрикам
- Гайд по Retention
- Доступ к закрытой библиотеке лучших книг по SQL

🔗 Записаться на экскурсию: https://forms.gle/qSyfrudojoZpodYaA

#git
3👍3🔥2
🤩 Обновление в Симуляторе «Собеседования аналитика»!

У нас новости! Мы расширили опции тарифов на Симуляторе «Собеседования аналитика», и обучение теперь стало еще приятнее и продуктивнее.

Что мы добавили:

🔸 бессрочный доступ ко всем материалам курса

🔸 поддержку наставника по любым вопросам 24/7

🔸 еще больше продуктовых кейсов и задач с технических собеседований — вас ждет настоящая «прожарка» ваших знаний и навыков 😉

Подробнее о тарифах и опциях на сайте 👉 ссылка 👈
2👍2🔥2
🤓 Повторяем вопросы к собеседованиям 😎

Чем авторизация отличается от аутентификации?
Аутентификация — процедура проверки подлинности, например проверка подлинности пользователя путем сравнения введенного им пароля с паролем, сохраненным в базе данных. Авторизация — предоставление определенному лицу или группе лиц прав на выполнение определенных действий.

Почему базы данных называются реляционными?
Потому что данные в них хранятся в виде таблиц. Также бывают нереляционные бд, в которых данные хранятся иначе, например в формате словарей или графов.

Чем left join отличается от inner join?
inner join возвращает строки, содержащие совпадения в обоих таблицах, left join — все строки из левой таблицы, даже если в правой нет совпадений.

Что такое foreign key (внешний ключ)?
Внешний ключ SQL — это ключ, используемый для объединения двух таблиц. Иногда его также называют ссылочным ключом. Внешний ключ — это столбец или комбинация столбцов, значения которых соответствуют Первичному ключу в другой таблице.

🚀 Присоединяйтесь к курсу 👉 Симулятор Собеседования!

Будем готовиться вместе 💪

#interview_problems
🔥15👍9😁1🤩1
🌿🏡 Задача по SQL о Продаже кабачков с дачи

А вот и задачка Вам под выходные))) Наверняка вы решили начать бизнес по продаже свежих кабачков, которые ваши соседи 👨 👩 👦 👧 👴 👵 привозят с дачи. Вы хотите создать базу данных, чтобы отслеживать этот процесс и управлять продажами.

У вас есть две таблицы:

1. Таблица "Дачники" (Gardeners):

- gardener_id (идентификатор дачника)

- gardener_name (имя дачника)

- gardener_address (адрес дачника)

2. Таблица "Кабачки" (Zucchinis):

- zucchini_id (идентификатор кабачка)

- zucchini_weight (вес кабачка в граммах)

- purchase_date (дата покупки кабачка)

- gardener_id (идентификатор дачника, который привез кабачок)

Ваша задача:

1. Создать SQL-запрос, который вернет список дачников (имя и адрес), которые привезли кабачки весом более 500 граммов.

2. Создать SQL-запрос, который определит общий вес всех кабачков, которые были приобретены на определенную дату (например, 1 сентября 2023 года).

3. Создать SQL-запрос, который найдет дачника, который привез самый тяжелый кабачок, и выведет его имя и вес кабачка.

❗️ Помните, что для решения этой задачи вам потребуется выполнить соединение таблиц и использовать агрегатные функции SQL.

Присылайте ваше решение в комменты. А завтра мы выложим свое решение 😉

Ну и, удачи в управлении бизнесом с кабачками с дачи! 🌿🏡
😁1211👍5🤩1
📈Успели собрать все кабачки и проанализировать? 😄

А вот и решение подъехало, можно сравнить с тем, что получилось у вас 😊

1. Список дачников (имя и адрес), которые привезли кабачки весом более 500 граммов:

SELECT gardener_name, 
gardener_address
FROM Gardeners
INNER JOIN Zucchinis
ON Gardeners.gardener_id =
Zucchinis.gardener_id
WHERE Zucchinis.zucchini_weight > 500;

2. Общий вес всех кабачков, которые были приобретены на определенную дату (например, 1 сентября 2023 года):

SELECT SUM(zucchini_weight) 
AS total_weight
FROM Zucchinis
WHERE purchase_date =
'2023-09-01';

3. Дачник, который привез самый тяжелый кабачок, и его имя и вес кабачка:

SELECT gardener_name, 
MAX(zucchini_weight)
AS max_weight
FROM Gardeners
INNER JOIN Zucchinis
ON Gardeners.gardener_id =
Zucchinis.gardener_id
GROUP BY gardener_name
ORDER BY max_weight DESC
LIMIT 1;

Теперь вы можете использовать эти SQL-запросы для управления любым вашим бизнесом! 🌿🏡😊
8👍5
WarCraft, Dota или … SQL?! 💃

Признайтесь, наверняка в детстве (а может и не в детстве) вы наиграли сотни часов в Dota и/или прошли все кампании в Warcraft 3? Вот мы именно так и проводили время 😅

А теперь мы выросли и вместо борьбы с Плетью и Пылающим легионом вынуждены писать скрипты на Python и многоэтажные SQL-запросы. Но наверняка вы не знаете, что… можно писать код и играть в WarCraft одновременно? 😉

Да, мы с командой запустили новый проект - WarCode: Спасение Древа Жизни 🌳

🔗 war-code.ru

Мы подготовили для вас 3 отборные задачи по направлениям Data Engineering, Machine Learning и Data Science:

- изменение пикового значения регистраций юзеров [SQL, Data Engineering]
- поиск весов cross-attention [Python, ML]
- использование Named Entity Recognition [Python, DS]

Решите одну или несколько задачек и спасите Древо Жизни от Багтрекаса и его Юзерского Легиона!

Начать решать задачки: war-code.ru

P.S. За каждый репост и реакицю ❤️ на этот пост вам прилетит +1000 очков к карме и личный респект от каждого разработчика этого проекта. Мы очень старались 🙏🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
24😁3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
5😁3
🚀 Как увеличить производительность Pandas в 1000 раз!

Pandas - мощная библиотека для работы с данными, но иногда она может работать медленно, особенно с большими наборами данных. В этом посте мы рассмотрим несколько стратегий, которые могут ускорить работу Pandas в 1000 раз и сделать ваши вычисления более эффективными. 🚀

1. Используйте pandas.read_csv с параметром dtype

Если вы заранее знаете типы данных в ваших столбцах, передайте их при чтении CSV-файла. Это ускорит процесс чтения данных.

dtypes = {'col1': 'тип1',
'col2': 'тип2'}
df = pd.read_csv('file.csv',
dtype=dtypes)
 
2. Используйте pandas.DataFrame.query

Вместо фильтрации данных с использованием df[df['условие']] используйте df.query('условие'), что может быть намного быстрее.
  
df_filtered =
df.query('col>100')
   
3. Используйте pandas.concat вместо pd.DataFrame.append в циклах

Если вам нужно объединить много DataFrame в цикле, используйте pandas.concat вместо append, чтобы избежать многократного копирования данных.
  
dfs = [df1, df2, df3, ...]
combined_df = pd.concat(dfs)
   
4. Используйте pandas.DataFrame.apply с функцией, написанной на C

Если вам нужно применить функцию к столбцу DataFrame, напишите функцию на C и используйте apply с параметром raw=True, чтобы ускорить процесс.

def my_function_c(data):
# Реализация функции на C
return result

df['new_col'] =
df['col'].apply(
my_function_c, raw=True)
 
5. Используйте pandas.DataFrame.groupby с agg вместо apply

Если вам нужно применить функцию к группам данных, используйте agg, чтобы уменьшить количество вызовов функции.

grouped =
df.groupby('col1').agg(
{'col2': 'сумма',
'col3': 'среднее'})
   
Применяя эти стратегии, вы можете ускорить работу Pandas в 1000 раз и сделать анализ данных более эффективным и быстрым. Не забудьте всегда профилировать и измерять производительность вашего кода, чтобы определить, какие оптимизации наиболее эффективны для вашей конкретной задачи💡🐼

#pandas
_ _ _ _ _ _ _ _ _

🔥 Хотите посмотреть, как устроен наш Симулятор «Аналитик данных» и понять, как вы можете бустануть свою карьеру в аналитике с помощью обучения на реальных бизнес-кейсах?

🔗 Просто запишитесь на нашу бесплатную онлайн-экскурсию: https://forms.gle/qSyfrudojoZpodYaA
🔥15👍6🤩2
🎉 Симулятору «Аналитик данных» — год! 🎉

Приветствуем!

Сегодня нашему флагманскому продукту — Симулятору «Аналитик данных» — исполняется целый год!

За эти 365 дней мы проделали кучу итераций и обновлений, чтобы сделать Симулятор еще лучше, и сегодня хотим поделиться с вами нашими достижениями:

◾️ Увеличили количество кейсов и задач — теперь для обучения стало еще больше простора и практики. Например, в модуле по Python только в первых 7 уроках у нас более 100 задач.

◾️ Расширили способы оплаты обучения — принимаем оплату с российских и зарубежных карт. Также ввели беспроцентную рассрочку на 24 месяца 💪🏻

◾️ Добавили персонального куратора-мотиватора — теперь каждый точно дойдет до конца обучения и не заскучает на середине пути 😅

◾️ Открыли доступ на пожизненное обновление материала — учитесь в любое время дня и ночи, материалы всегда будут актуальными и идти в ногу со временем!

🏆 Большие изменения произошли и в составе нашей команды!

Мы расширили команду экспертов по аналитике данных, чтобы помочь вам решать ваши задачи и ответить на любые вопросы, с которыми вы столкнетесь в процессе обучения в Симуляторе.

К нам присоединились:

🔸 Кожевникова Кристина (Head of HR Магнит, ex-Google)
🔸 Астанков Дмитрий (Senior MLOps Engineer в Zvuk, ex-Яндекс, ex-Akvelon)

Но это еще не все!

Мы приглашаем вас принять участие в персональной онлайн-экскурсии, где вы сможете увидеть наш Симулятор в действии! Вы окунетесь в атмосферу реального анализа данных, узнаете, как выглядит наша программа изнутри и как она поможет вам стать настоящим гуру-аналитиком данных 🧘‍♂️

🔗 Записаться на онлайн-экскурсию: https://forms.gle/qSyfrudojoZpodYaA

Вместе с Симулятором «Аналитик данных» вы превратите вашу работу с данными в удовольствие и покорите новые горизонты успеха! 💪💡

#simulator #analytics #data_analytics
🎉13👍52
📋 Шпаргалка для создания таблиц и баз данных в PostgreSQL

1. Проверить наличие таблицы (если она существует, то удалить ее):

DROP TABLE IF EXISTS table;

2. Создать новую таблицу:

CREATE TABLE table (
    col1 type1,
    col2 type2,
    ...
);

3. Создать базу данных (если ее нет):

CREATE DATABASE IF
NOT EXISTS database;

4. Выбрать базу данных:

\c database;

5. После выполнения всех необходимых операций, завершите запрос 😊

Это простой пример. Помимо указанных команд, вы также можете добавить ограничения (например, PRIMARY KEY, FOREIGN KEY) и индексы в вашей таблице, в зависимости от ваших потребностей.

А вот и примеры того, как создать в PostgreSQL ограничения PRIMARY KEY и FOREIGN KEY:

1. Создание PRIMARY KEY:

CREATE TABLE user (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    email VARCHAR(100) UNIQUE
);

2. Создание FOREIGN KEY:

CREATE TABLE orders (
   order_id SERIAL PRIMARY KEY,
    user_id INT,
    sales DECIMAL,
    FOREIGN KEY (user_id)
REFERENCES user (id)
);

Для наполнения таблицы данными в PostgreSQL используется оператор INSERT INTO. Вот пример того, как можно вставить данные в созданную ранее таблицу:

-- Вставка одной записи
INSERT INTO table (col1, col2)
VALUES ('val1', 'val2');

-- Вставка нескольких записей одновременно
INSERT INTO table (col1, col2)
VALUES ('val3', 'val4'),
    ('val5', 'val6');

В этом примере table - это имя вашей таблицы, col1, col2, и т. д. - это названия столбцов, в которые вы хотите вставить данные, а val1, val2, и т. д. - это фактические данные, которые вы хотите добавить.

Вы можете повторять операторы INSERT INTO для вставки необходимого количества записей в вашу таблицу 😄

#sql
_ _ _ _ _ _ _ _ _

🔥 Хотите посмотреть, как устроен наш Симулятор «Аналитик данных» и понять, как вы можете бустануть свою карьеру в аналитике с помощью обучения на реальных бизнес-кейсах?

🔗 Просто запишитесь на нашу бесплатную онлайн-экскурсию: https://forms.gle/qSyfrudojoZpodYaA
👍8🔥84🤩1
🔍 Пример ошибочно решенной задачи

Допустим, у нас есть таблица с заказами в интернет-магазине, и мы хотим найти среднюю цену заказа.

🚫 Ошибочное решение:

SELECT AVG(цена) 
FROM заказы;

Ошибка в этом запросе заключается в том, что мы пытаемся вычислить среднюю цену заказа путем применения AVG() к столбцу цена, предполагая, что это сработает корректно.

👉 Правильное решение:

Чтобы получить среднюю цену заказа, нам нужно учитывать не только столбец цена, но и количество товаров в каждом заказе. Вот как правильно это сделать:

SELECT SUM(цена*кол-во)/SUM(кол-во) 
FROM заказы;

В этой версии запроса мы умножаем цену на количество товаров в каждом заказе и затем делим сумму всех таких произведений на общее количество товаров. Это даст нам правильную среднюю цену заказа, учитывая количество товаров в каждом заказе.

📌 Урок:

Ошибкой в первом запросе было игнорирование количества товаров в заказах, что привело к неверному результату. Важно всегда внимательно анализировать задачу и участвующие данные, чтобы выбрать правильный способ решения.

#sql
🔥15👍6👎1
🤓 Повторяем вопросы к собеседованиям 😎

Чем отличается дескриптивная аналитика от предиктивной аналитики? Что такое прескриптивная аналитика?

Дескриптивная аналитика описывает прошедшие события и тренды на основе данных, в то время как предиктивная аналитика стремится делать прогнозы и предсказания на будущее на основе этих данных.

1. Дескриптивная аналитика (Denoscriptive Analytics):
- Описание: Дескриптивная аналитика описывает прошедшие события и явления на основе имеющихся данных. Это первый этап анализа данных и часто используется для понимания текущей ситуации.
- Цель: предоставить структурированное описание данных, включая статистические метрики, визуализации и сводные отчеты, чтобы сделать выводы о прошлых событиях.
- Пример: Анализ продаж за прошлый год, включая средние продажи, медианное значение, графики продаж и диаграммы.

2. Предиктивная аналитика (Predictive Analytics):
- Описание: Предиктивная аналитика использует данные из прошлого для создания моделей и прогнозирования будущих событий или результатов.
- Цель: предсказать будущие события, тренды и результаты, что может быть полезно для принятия более информированных решений.
- Пример: Прогнозирование будущих продаж на основе данных о продажах за предыдущие месяцы с использованием методов машинного обучения.

3. Прескриптивная аналитика (Prenoscriptive Analytics):
- Описание: Прескриптивная аналитика берет на себя более активную роль в принятии решений, предлагая оптимальные стратегии на основе предсказаний и целей бизнеса.
- Цель: определить, какие действия нужно предпринять, чтобы достичь желаемого результата, учитывая различные факторы и ограничения.
- Пример: Рекомендации по оптимизации рекламных бюджетов с учетом прогнозируемых продаж и ROI.

Что такое A/B-тестирование, и как оно применяется в анализе данных?

- Описание: A/B-тестирование - это метод, используемый для сравнения двух или более версий продукта, веб-сайта или маркетинговой кампании с целью определения наиболее эффективной версии на основе данных и метрик.
- Цель: Определение, какие изменения или варианты приводят к лучшим результатам в сравнении с контрольной группой.
- Пример: Сравнение двух разных версий лендинг-страницы для определения, какая версия приводит к большему числу конверсий.


Мы верим, что регулярно отвечая на вопросы, вы сможете поддерживать себя в тонусе для собеседований!

#interview_problems
_ _ _ _ _ _ _ _ _

🔥 Хотите посмотреть, как устроен наш Симулятор «Аналитик данных» и понять, как вы можете бустануть свою карьеру в аналитике с помощью обучения на реальных бизнес-кейсах?

🔗 Просто запишитесь на нашу бесплатную онлайн-экскурсию: https://forms.gle/qSyfrudojoZpodYaA
👍84🔥4
🤔 Что такое COALESCE?

Если Вы работаете с SQL, то скорее всего Вы сталкивались с выражением COALESCE. Если же Вы с ним не знакомы, то самое время сделать это сейчас - это очень крутая штука, которая пригодится Вам в решении большого количества задач. Поэтому хотим сегодня поделиться с вами этой информацией. Итак, поехали!

Начнем с самого простого - что такое COALESCE?

COALESCE - это специальное выражение, которое вычисляет по порядку каждый из своих аргументов и на выходе возвращает значение первого аргумента, который был не NULL.

📝 Пример использования:

SELECT COALESCE(NULL, NULL, 1, 2, NULL, 3)
# 1

Этот запрос вернет 1, потому что первые два аргумента NULL, а третий аргумент принимает значение отличное от NULL. Соответственно, выражение COALESCE даже не будет смотреть дальше - главное, что третий аргумент не NULL.

Другие примеры:

SELECT COALESCE(1, NULL, 2, NULL)
# 1

или

SELECT COALESCE(NULL, NULL)
# NULL

Наверно, вы поняли основной смысл. Если можно вернуть не NULL - возвращается первое непустое значение. Если нельзя - возвращается NULL.

Стоит отметить, что COALESCE используется во многих популярных СУБД: PostgreSQL, MS SQL Server, Oracle, MySQL и так далее.

🚀 Преимущества COALESCE:

- Гарантирует, что вы всегда получите значение, даже если некоторые данные отсутствуют.
- Позволяет более безопасно и удобно работать с данными, избегая ошибок из-за NULL.

Так что в следующий раз, когда вы будете иметь дело с данными, не забудьте о COALESCE! Мы уверены, он точно будет вам полезен! 💪😊

_ _ _ _ _ _ _ _

🔥 Хотите посмотреть, как устроен наш Симулятор «Аналитик данных» и понять, как вы можете бустануть свою карьеру в аналитике с помощью обучения на реальных бизнес-кейсах?

🔗 Просто запишитесь на нашу бесплатную онлайн-экскурсию: https://forms.gle/qSyfrudojoZpodYaA
👍11🔥6
Что нужно уметь и знать, чтобы устроиться аналитиком? 🔥

Нам часто задают вопрос: «А что нужно знать, чтобы быстро устроиться аналитиком в крутую компанию на хорошую зарплату?»

Мы подготовили для вас список навыков, которые вам точно нужно освоить для комфортного трудоустройства.

🧠 Знания:

- Продуктовые метрики (MAU/WAU/DAU, retention, LTV, Lifetime, CAC, CPL, CR и т.д.)
- Математическая статистика, теория вероятностей
- А/B тестирование и проверка гипотез

🧑‍💻 Навыки:

- SQL на продвинутом уровне
- Базовый синтаксис Python на высоком уровне
- Библиотеки Python для анализа данных (Numpy, Pandas)
- Библиотеки Python для визуализации данных (Matplotlib, Seaborn, Plotly)

🛠 Инструменты:

- BI-системы (Power BI, Metabase/Redash/Superset)
- Git / Github

Что еще нужно уметь?

- Приносить пользу для бизнеса. Нужно не просто уметь писать SQL-запросы, а подобрать нужный вид анализа под задачу, провести аналитику с помощью SQL и сгенерировать выводы.
- Собрать портфолио. Когда ты только в начале пути — правильно оформленное резюме/портфолио — ключ к успеху.
- Уметь проходить собеседования. Тестовые задания и технические собеседования — всегда большой стресс. Нужно иметь высокий уровень подготовки и натренированность, чтобы достойно проходить все этапы найма.

В целом, это основной арсенал, который понадобится вам при поиске работы в сфере анализа данных. Выглядит массивно, согласитесь? 🙄

Кстати, если вы только присматриваетесь к сфере аналитики или уже находитесь в процессе изучения и хотите глубже прокачать свои знания и практические скиллы, то приглашаем вас на нашу специальную программу — Симулятор «Аналитик данных» 🤩

Это большая образовательная программа, где вы в 12 модулях последовательно получаете все необходимые навыки и знания для освоения профессии аналитика данных. Вот несколько важных вещей, за счет которых ваше обучение будет намного эффективней, чем на обычном курсе:

◾️ Упор на практику — каждый урок сопровождается большим количеством практических заданий.

◾️ Бизнес-кейсы — все обучение происходит на кейсах из реального бизнеса, а вы с первого дня учитесь решать задачи, за которые работодатель готов платить большие деньги. Мы не поддерживаем обучение на «яблоках» и «апельсинах» — мы за «обучение в бою».

◾️ Комбинированный формат в каждом уроке — видеолекции, текстовые уроки, конспекты, практическая часть.

◾️ Поддержка наставника — наши преподаватели всегда готовы прийти на помощь, разъяснить непонятную тему или направить в нужном направлении.

И это далеко не все! Записывайтесь на нашу персональную онлайн-экскурсию в Симулятор “Аналитик данных” и посмотрите, как устроено обучение своими глазами 👀

👉🏻 Записаться на экскурсию — https://forms.gle/qSyfrudojoZpodYaA
7🔥6👍2👎1
😎Спойлер к задаче с War-code😎

Мы разобрали задачи war-code.ru и решили заспойлерить вам подсказку, которая пригодится вам в решении задачек 😏 Речь о функции SQL generate_series.

Чтобы не портить удовольствие от решения настоящей задачи, мы рассмотрим работу generate_series на другом примере. Давайте построим график посещения нашими пользователями сайта war-code 👨‍💻

Нам нужна таблица с датами и количеством посещений. Запрос будет выглядеть следующим образом:

SELECT
eventtime::date AS days,
COUNT(*) AS "User Visits"
FROM warcode
WHERE
eventtime > current_date -
interval '14 day'
AND eventtime <
date_trunc('day', current_date)
GROUP BY 1
ORDER BY 1;

Посмотрите на картинку 1 👀

Кажется, здесь все в порядке, но если мы внимательнее посмотрим на ось дат, то увидим, что некоторые из них отсутствуют 😱

А все дело в том, что с 10/05 по 10/07 никто не заходил на платформу, и запрос не смог ничего сгруппировать в те дни. Аналогично с 10/11 по 10/14. Такие графики могут серьезно сбить с толку, ведь не всегда можно заметить пропущенные даты. Показать такое инвесторам, конечно, здорово, но нечестно. А честно будет в подобных задачах использовать generate_series().

Как это работает?

generate_series(start, stop, step) - это функция, которая возвращает набор строк и принимает два обязательных аргумента, start и stop, и один необязательный, step.

🔵 Простейший пример, возвращающий список чисел от 1 до 5:

SELECT generate_series(1, 5) 

📅 Generate_series может принимать не только числа, но и даты (чтобы сгенерировать список дат). Тогда, в качестве шага, обязательно используйте интервал.

Вот, например, все даты от '2023-10-01' до '2023-10-14' с интервалом в один день:

SELECT generate_series(
'2023-10-01'::timestamp,
'2023-10-14'::timestamp,
'1 day'::interval)::date
AS days
;

Возвращаемся к нашему графику. Уже знаете, что мы будем делать? Мы отдельно напишем генерацию даты в CTE, а затем с помощью left join добавим таблицу с ранее рассчитанными данными:

WITH generated_days AS (
SELECT generate_series(
'2023-10-01'::timestamp,
'2023-10-10'::timestamp,
'1 day'::interval)::date
AS days
)
SELECT days, "User Visits"
FROM generated_days
LEFT JOIN (
SELECT
eventtime::date AS days,
count(*) AS "User Visits"
FROM warcode
WHERE eventtime >
current_date -
interval '14 day'
AND eventtime < date_trunc('day', current_date)
GROUP BY 1
) t USING (days)
ORDER BY 1;

Теперь в нашем итоговом сете есть несколько дней со значениями NULL в графе посещение пользователей. Cет выглядит определенно правдивее.

❗️Чтобы избежать разрывов, можно использовать coalesce() и поставить значение 0 для пустых полей.

SELECT days, COALESCE("User Visits", 0);

Итак, наш итоговый сет готов, чтобы на основе него построить график зависимости посещения пользователей от даты. Посмотрите на картинку 2.

Задача выполнена, наш сет и график соответствуют действительности.

Кажется, мы полностью вас подготовили, так что приглашаем попробовать ваши силы в задаче «Data Engineering» на war-code.ru 💪
🔥54👍3🤩1
🔥5👍1