LEFT JOIN Insider
1.54K subscribers
281 photos
2 videos
63 links
Команда дата-консалтинга LEFT JOIN рассказывает про “внутрянку“, стек, кейсы и свой подход к работе. Иногда еще и вакансии постим.

Аутсорсинг аналитики и инжиниринга → leftjoin.ru
О команде и стеке → leftjoin.ru/team/
Закинуть резюме HR → @TatianaV_HR
Download Telegram
Тестовые задания: задачка на Python и когортный анализ
На прошлой неделе мы разбирали задачку на SQL и считали LTV для недельной когорты новых игроков. Сегодня те же вводные данные, но другая задача.

В этой задаче нужно написать код на Python, который построит таблицу когортного анализа удержания новичков. Примерный вид итоговой таблицы: в колонке Week_start неделя первого входа игрока в игру — когорта; следующие 30 колонок — дни после первого входа.

Что проверяет такая задача?
🔵 базовое знание Python
🔵 понимание сути когортного анализа

Как можно решить?
1️⃣ Берем датафрейм, соответствующий таблице, в которой есть логирование всех входов игрока в игру.
2️⃣ Получаем дату первого захода пользователя и определяем неделю первого входа в качестве когорты.
3️⃣ Считаем количество дней между первым входом и остальными заходами пользователя.
4️⃣ Формируем таблицу в соответствии с датафреймом, где 0 день соответствует размеру когорты.
5️⃣ Корректируем названия столбцов и заполняем нулями пустые значения, где Day <= (current_date - первый день недели).dt.days.

Наш вариант решения:

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
👍54🔥3
HR на связи: 4 кейса, которые помогут пройти любое интервью
Важная часть любого интервью — поведенческие вопросы. Все они направлены на то, чтобы узнать больше о ваших успехах, ошибках и уроках, которые вы вынесли.

Чтобы не теряться и не впадать в ступор, мы подготовили 4 кейса, которые расскажут о вашем опыте лучше вас 🔥

1️⃣ Самый успешный проект
Медятина вашей карьеры — то, чем вы гордитесь и о чем можете рассказать на языке результата.

2️⃣ Самый провальный проект
Многие специально умалчивают о проектах, которые не получились. Но ошибаться — абсолютно нормально. Ваши провальные кейсы могут показать рекрутеру, что вы способны признавать ошибки и выносить из них уроки.

3️⃣ Самый сложный заказчик / клиент / руководитель, с которым вам довелось работать или решать вопрос
Этот кейс раскрывает ваш навык работы с людьми. В конкурентной гонке за вакантное место чаще всего выигрывают кандидаты с хорошо развитыми soft-skills, так как даже на самой технической позиции придется взаимодействовать с людьми.

4️⃣ Самый интересный проект
Рекрутер должен понять, что вам нравится ваша работа. Демотивированный кандидат с малой долей вероятности принесет компании результат, да и мало кто захочет видеть постоянно грустное и недовольное лицо на командных созвонах.

Есть ли такие кейсы в вашем портфолио? Делитесь в комментариях!

🔜 @leftjoin_career

#HR_на_связи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🥰2
Завтра в Data №1: от анализа данных при продаже кумыса до руководителя международной аналитики

Запускаем новую рубрику, где расскажем об экспертах в сфере Data — об их крутых проектах, пройденном пути и накопленном опыте.

🔜 Гость пилотного выпуска — Роман Васильев, руководитель международной аналитики «Яндекс Поиск».

Автор Telegram-каналов Start Career in DS и я так понимаю, Роман Васильев.

О чем это интервью?
🔵Как развиваться в Data новичку: университет, курсы или самостоятельное обучение.
🔵О факторах, влияющих на успех в сфере.
🔵О подводных камнях в работе.
🔵Что читать и смотреть, чтобы развиваться в Data (ссылки оставили в комментариях).

Все подробности — в карточках 🔥

А задать любые интересующие вопросы Роману можно в комментариях!

🔜 @leftjoin_career

#завтра_в_data
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84🥰4👎2
Этому миру нужно больше жизненных фильмов!
В процессе исследований Telegram-каналов с вакансиями, нашли варианты фильмов, которые точно сделают рекорд по выручке в прокате. Что-то взяли оттуда, а что-то скреативили сами. Делимся с вами!

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

🔜 @leftjoin_career
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁135🔥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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥4
Тестовые задания: задачка на позицию Junior Data Analyst в Amazon
Признавайтесь, было интересно, какие тестовые у мировых IT-гигантов? Мы прочитали ваши мысли и принесли вам задачку на группировку и знание расчетных функций.

Вам дана таблица Orders.
Необходимо написать запрос для маркетинговой команды, который выявит всех клиентов, кто купил iPhone, но не купил Airpods.

Что проверяет такая задача?
🔵 Базовое знание SQL.
🔵 Знание оконных функций и умение их успешно применять на практике.
🔵Знание расчетных функций.

Решение
1. В результате запроса выводим только имя клиента (как сказано в условии задачи).

2. Берем таблицу-источник и прописываем конструкцию, нужную для проведения расчетов относительно клиентов.

3. Задаем условия для вывода клиентов:
🔵Условие для определения, покупал ли данный клиент iPhone: обозначаем 1, если покупал.
🔵 Условие для определения, покупал ли данный клиент Airpods: обозначаем 1, если покупал.

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👍73👏2