Тестовые задания: задачка на Python и когортный анализ
На прошлой неделе мы разбирали задачку на SQL и считали LTV для недельной когорты новых игроков. Сегодня те же вводные данные, но другая задача.
В этой задаче нужно написать код на Python, который построит таблицу когортного анализа удержания новичков. Примерный вид итоговой таблицы: в колонке Week_start неделя первого входа игрока в игру — когорта; следующие 30 колонок — дни после первого входа.
Что проверяет такая задача?
🔵 базовое знание Python
🔵 понимание сути когортного анализа
Как можно решить?
1️⃣ Берем датафрейм, соответствующий таблице, в которой есть логирование всех входов игрока в игру.
2️⃣ Получаем дату первого захода пользователя и определяем неделю первого входа в качестве когорты.
3️⃣ Считаем количество дней между первым входом и остальными заходами пользователя.
4️⃣ Формируем таблицу в соответствии с датафреймом, где 0 день соответствует размеру когорты.
5️⃣ Корректируем названия столбцов и заполняем нулями пустые значения, где Day <= (current_date - первый день недели).dt.days.
Наш вариант решения:
Задавайте вопросы и предлагайте ваши способы решения в комментариях!
#разбор_тестового
На прошлой неделе мы разбирали задачку на SQL и считали LTV для недельной когорты новых игроков. Сегодня те же вводные данные, но другая задача.
В этой задаче нужно написать код на Python, который построит таблицу когортного анализа удержания новичков. Примерный вид итоговой таблицы: в колонке Week_start неделя первого входа игрока в игру — когорта; следующие 30 колонок — дни после первого входа.
Что проверяет такая задача?
Как можно решить?
Наш вариант решения:
users_first_login = df.groupby('user_id').agg(
first_login = ('created', 'min')
).reset_index()
users_first_login['week_start'] = users_first_login['first_login'].dt.to_period('W').apply(
lambda r: r.start_time)
df_final = pd.merge(users_first_login, df, how='inner', on='user_id')
df_final['day'] = (df_final['created'] - df_final['first_login']).dt.days
df_final_pivot = pd.pivot_table(df_final, values='user_id', index='week_start',
columns='day', aggfunc='count')
df_final_pivot = df_final_pivot.astype('Int32')
df_final_pivot.columns = list(map(lambda x: 'Day_' + str(x), df_final_pivot.columns))
Задавайте вопросы и предлагайте ваши способы решения в комментариях!
#разбор_тестового
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤4🔥3
HR на связи: 4 кейса, которые помогут пройти любое интервью
Важная часть любого интервью — поведенческие вопросы. Все они направлены на то, чтобы узнать больше о ваших успехах, ошибках и уроках, которые вы вынесли.
Чтобы не теряться и не впадать в ступор, мы подготовили 4 кейса, которые расскажут о вашем опыте лучше вас🔥
1️⃣ Самый успешный проект
Медятина вашей карьеры — то, чем вы гордитесь и о чем можете рассказать на языке результата.
2️⃣ Самый провальный проект
Многие специально умалчивают о проектах, которые не получились. Но ошибаться — абсолютно нормально. Ваши провальные кейсы могут показать рекрутеру, что вы способны признавать ошибки и выносить из них уроки.
3️⃣ Самый сложный заказчик / клиент / руководитель, с которым вам довелось работать или решать вопрос
Этот кейс раскрывает ваш навык работы с людьми. В конкурентной гонке за вакантное место чаще всего выигрывают кандидаты с хорошо развитыми soft-skills, так как даже на самой технической позиции придется взаимодействовать с людьми.
4️⃣ Самый интересный проект
Рекрутер должен понять, что вам нравится ваша работа. Демотивированный кандидат с малой долей вероятности принесет компании результат, да и мало кто захочет видеть постоянно грустное и недовольное лицо на командных созвонах.
Есть ли такие кейсы в вашем портфолио? Делитесь в комментариях!
🔜 @leftjoin_career
#HR_на_связи
Важная часть любого интервью — поведенческие вопросы. Все они направлены на то, чтобы узнать больше о ваших успехах, ошибках и уроках, которые вы вынесли.
Чтобы не теряться и не впадать в ступор, мы подготовили 4 кейса, которые расскажут о вашем опыте лучше вас
Медятина вашей карьеры — то, чем вы гордитесь и о чем можете рассказать на языке результата.
Многие специально умалчивают о проектах, которые не получились. Но ошибаться — абсолютно нормально. Ваши провальные кейсы могут показать рекрутеру, что вы способны признавать ошибки и выносить из них уроки.
Этот кейс раскрывает ваш навык работы с людьми. В конкурентной гонке за вакантное место чаще всего выигрывают кандидаты с хорошо развитыми soft-skills, так как даже на самой технической позиции придется взаимодействовать с людьми.
Рекрутер должен понять, что вам нравится ваша работа. Демотивированный кандидат с малой долей вероятности принесет компании результат, да и мало кто захочет видеть постоянно грустное и недовольное лицо на командных созвонах.
Есть ли такие кейсы в вашем портфолио? Делитесь в комментариях!
#HR_на_связи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🥰2
Завтра в Data №1: от анализа данных при продаже кумыса до руководителя международной аналитики
Запускаем новую рубрику, где расскажем об экспертах в сфере Data — об их крутых проектах, пройденном пути и накопленном опыте.
🔜 Гость пилотного выпуска — Роман Васильев, руководитель международной аналитики «Яндекс Поиск».
Автор Telegram-каналов Start Career in DS и я так понимаю, Роман Васильев.
О чем это интервью?
🔵 Как развиваться в Data новичку: университет, курсы или самостоятельное обучение.
🔵 О факторах, влияющих на успех в сфере.
🔵 О подводных камнях в работе.
🔵 Что читать и смотреть, чтобы развиваться в Data (ссылки оставили в комментариях).
Все подробности — в карточках 🔥
А задать любые интересующие вопросы Роману можно в комментариях!
🔜 @leftjoin_career
#завтра_в_data
Запускаем новую рубрику, где расскажем об экспертах в сфере Data — об их крутых проектах, пройденном пути и накопленном опыте.
Автор Telegram-каналов Start Career in DS и я так понимаю, Роман Васильев.
О чем это интервью?
Все подробности — в карточках 🔥
А задать любые интересующие вопросы Роману можно в комментариях!
#завтра_в_data
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤4🥰4👎2
Этому миру нужно больше жизненных фильмов!
В процессе исследований Telegram-каналов с вакансиями, нашли варианты фильмов, которые точно сделают рекорд по выручке в прокате. Что-то взяли оттуда, а что-то скреативили сами. Делимся с вами!
В комментариях пишите, какую киноленту посмотрели бы в первую очередь.
🔜 @leftjoin_career
В процессе исследований Telegram-каналов с вакансиями, нашли варианты фильмов, которые точно сделают рекорд по выручке в прокате. Что-то взяли оттуда, а что-то скреативили сами. Делимся с вами!
В комментариях пишите, какую киноленту посмотрели бы в первую очередь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13❤5🔥4👎1
Дайджест вакансий в Valiotti Analytics
Valiotti Analytics — компания, которая строит кастомные системы аналитики данных от инжиниринга до датавиза для digital-компаний по всему миру.
Data Analyst (Junior)
Что нужно делать?
🔵 Строить ad-hoc отчетность с использованием SQL.
🔵 Строить выборки из баз данных c использованием SQL.
🔵 Разрабатывать дашборды на фреймворке dash / plotly.
🔵 Разрабатывать отчеты в Tableau, Redash, Superset, PowerBI.
🔵 Строить дашборды и системы мониторинга.
🔵 Строить отчеты с использованием Python (pandas, numpy, matplotlib, plotly).
🔜 Откликнуться
Data Engineer (Junior & Middle)
Что нужно делать?
🔵 Создавать и поддерживать ETL/ELT-процессы.
🔵 Cоздавать и редактировать SQL-процедуры для наполнения таблиц хранилища.
🔵 Следить за корректностью работы отчетов (проверять консистентность данных в источнике).
🔵 Поддерживать и видоизменять имеющиеся модели данных.
🔵 Решать проблемы импорта данных (Middle)
🔵 Создавать и сопровождать витрины данных: настраивать индексы, оптимизировать таблицы, пересчитывать данные, предоставлять права доступа.
🔵 Проектировать модели данных для новых сущностей хранилища.
🔵 Документировать разработанный код.
🔜 Откликнуться на позицию Junior
🔜 Откликнуться на позицию Middle
@leftjoin_career
Valiotti Analytics — компания, которая строит кастомные системы аналитики данных от инжиниринга до датавиза для digital-компаний по всему миру.
Data Analyst (Junior)
Что нужно делать?
Data Engineer (Junior & Middle)
Что нужно делать?
@leftjoin_career
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥4
Тестовые задания: задачка на позицию Junior Data Analyst в Amazon
Признавайтесь, было интересно, какие тестовые у мировых IT-гигантов? Мы прочитали ваши мысли и принесли вам задачку на группировку и знание расчетных функций.
Вам дана таблица Orders.
Необходимо написать запрос для маркетинговой команды, который выявит всех клиентов, кто купил iPhone, но не купил Airpods.
Что проверяет такая задача?
🔵 Базовое знание SQL.
🔵 Знание оконных функций и умение их успешно применять на практике.
🔵 Знание расчетных функций.
Решение
1. В результате запроса выводим только имя клиента (как сказано в условии задачи).
2. Берем таблицу-источник и прописываем конструкцию, нужную для проведения расчетов относительно клиентов.
3. Задаем условия для вывода клиентов:
🔵 Условие для определения, покупал ли данный клиент iPhone: обозначаем 1, если покупал.
🔵 Условие для определения, покупал ли данный клиент Airpods: обозначаем 1, если покупал.
4. Так как нам нужны клиенты, которые купили Iphone, но не купили Airpods, то присваиваем Iphone = 1, а Airpods = 0.
Наш вариант решения:
Кстати, в предыдущих и этом решениях мы не подписывали диалект SQL.
Напишите в комментариях — на каком SQL мы пишем.
@leftjoin_career
#разбор_тестового
Признавайтесь, было интересно, какие тестовые у мировых IT-гигантов? Мы прочитали ваши мысли и принесли вам задачку на группировку и знание расчетных функций.
Вам дана таблица Orders.
Необходимо написать запрос для маркетинговой команды, который выявит всех клиентов, кто купил iPhone, но не купил Airpods.
Что проверяет такая задача?
Решение
1. В результате запроса выводим только имя клиента (как сказано в условии задачи).
2. Берем таблицу-источник и прописываем конструкцию, нужную для проведения расчетов относительно клиентов.
3. Задаем условия для вывода клиентов:
4. Так как нам нужны клиенты, которые купили Iphone, но не купили Airpods, то присваиваем Iphone = 1, а Airpods = 0.
Наш вариант решения:
select customer_name
from orders
group by customer_name
having
max(case prod_name when 'iPhone' then 1 else 0 end)=1
and
max(case prod_name when 'Airpods' then 1 else 0 end)=0
Кстати, в предыдущих и этом решениях мы не подписывали диалект SQL.
Напишите в комментариях — на каком SQL мы пишем.
@leftjoin_career
#разбор_тестового
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍7❤3👏2