Детектив данных – Telegram
Детектив данных
2.44K subscribers
233 photos
2 videos
3 files
53 links
Канал про "Аналитику Данных" и мой путь в профессию.
Вкатился после 33
Ныне работаю BI аналитиком в "Комусе"
Бывший промышленный альпинист, военный юрист, оперуполномоченный, директор, торг представитель, супервайзер и даже HR BP.
Связь: @data_hunter_slc
Download Telegram
Так как аналитика данных и машинное обучение две тесно связанные между собой отрасли, так или иначе интересуюсь и тем и тем. А ещё благодаря годам работы в ритейле - обращаю внимание на всё что происходит в соседних магазинах. Сегодня меня порадовал перекресток.🛒
Теперь когда мы кладете товар на весы, они сами понимают что вы взвешиваете и остаётся лишь уточнить позицию. Уж не знаю количество магазинов с этим пилотом, но думаю уже через некоторое время точность будет близка к 99%.

Вообще конечно очень интересно как устроен процесс под капотом.
Классно что наш ритейл сейчас активно развивается не только в доставку и мы получаем комфортные, просторные удобные магазины, в которые приятно ходить.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥9🐳4
🐍 Переходы клиентов из канала в канал и диаграмма Санкей
#кодимпитоним
Насмотревшись на Валерию с канала "Мир аналитика данных" решил тоже периодически писать о некоторых моих реальных рабочих задачах на питоне и способе их решения. В комментариях будет выложен питоновский файл чуть расширенный с дополнительными комментариями в коде

Была поставлена задача узнать какие клиенты меняли канал продаж, и в каком месяце. Сейчас посмотрим а так-же построим на основе данных диаграмму Санкей, чтобы понимать визуально, из какого-канала куда переходит клиент (а бонусом превратим диаграмму в гоночный трек 😁 )

Итак представим что у нас есть датасет, со следующими данными
- клиент
- канал
- и месяц - предположим что у нас выгрузка за пол года

Сгенерируем датасет для работы:

import random 
import pandas as pd
import numpy as np

clients = [str(random.randint(1, 999999)) for _ in range(20)]
clients = clients * 6

channels = ['E-com', 'B2B', 'B2C']
channel = [random.choice(channels) for _ in range(120)]

date_month = []
for i in range(2, 8):
date_month.extend([str(i)] * 20)

data = {
'client': clients,
'channel': channel,
'date_month': date_month
}

df = pd.DataFrame(data)

Пробежимся по коду:
1. Создаём список клиентов в количестве 20, и умножаем список на 6, получая подобие выгрузки к которой в дальнейшем добавим месяцы
2. Формируем список из допустим трёх каналов случайным образом в количестве 120, под весь наш датасет
3. формируем месяцы циклом от 2 до 7 месяца - по 20 раз

Начинаем изучать датасет:
Сначала посчитаем сколько каналов было у каждого клиента, а затем присоединим полученную цифру в наш датасет
count_channel = df.groupby('client')['channel'].nunique().rename('unique_channels')
dfmain = df.join(count_channel, on='client', how='left')

Затем добавим метку клиенту - менялся или не менялся у клиента канал, нагляднее это сделать с библиотекой numpy. В нашей случайной выборке скорее всего таких клиентов не будет, но в реальных данных таких клиентов было большинство
dfmain['change_channel'] = np.where(dfmain['unique_channels'] > 1, 'change', 'no change')

Далее в расширенной версии кода мы сохраняем список таких клиентов, но тут места мало, поэтому сразу отсортируем датасет: сначала по клиенту, а потом по месяцу в обратную сторону
dfs = filtered_alldf.sort_values(by=['client', "date_month"], ascending=[True, False])

Убираем дубликаты строк с клиентом и первым каналом, в результате у нас останутся только текущий канал и другие каналы
dfa = dfs.drop_duplicates(subset=['client', 'channel'], keep='first')

С помощью метода cumcount() пронумеруем строки по столбцу клиента, в результате мы получим новый столбец где текущий канал клиента равен 0, второй 1, и тд. Дальше фильтруем таблицу только где значение из нового столбца равно 1, т.е. строку с предыдущим каналом и месяцем его смены
dfa['line'] = dfa.groupby('client').cumcount()
result_df = dfa[dfa['line'] == 1]

Вот в целом мы и решили задачу, осталось всё переименовать столбцы, смёржить, и убрать предыдущие месяцы
result_df = result_df.rename(columns={"channel": "last_channel", "date_month": "last_date_month"})
dfmain5 = pd.merge(dfmain, result_df[['client', 'last_channel', 'last_date_month']], on='client', how='left')
dfmain5 = dfmain5[dfmain5['date_month'] == '7']


Код на график будет в комментариях. График Санкей (шарфы или перетоки) я очень люблю, но он не на всех данных хорошо смотрится. Тут прямо идеально зашёл. (Максимально упрощенный вариант графика в прилагаемом ipynb файле в комментах)

Спасибо за просмотр, если такой формат вам понравился - ставьте лайк.
37👍21🔥11
Жмём на кнопку!
👍24🔥7🏆2
🍸 Розыгрыш!
💥На канале 1000 подписчиков!

Постараюсь коротко сегодня. 😉
Хочу сказать спасибо всем участникам группы за ваши комментарии, активность и поддержку. Некоторые из вас со мной уже почти два года, и мы практически вместе прошли весь этот путь.

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

Долго думал, как отметить такое крутое событие, и понял, что лучший подарок - это книги. Поэтому сегодня среди подписчиков я разыграю ТРИ топовые книги:

1. Статистика и Котики – Владимир Савельев
2. Графики, которые убеждают всех – Александр Богачев
3. Погружение в аналитику данных. От Exсel к Python и R – Джордж Маунт

Итоги розыгрыша будут подведены автоматически через сутки. Будет выбрано три победителя: первый выбирает любую книгу, затем второй - из оставшихся двух, третьему достанется последняя книга.
Если по какой-либо причине победитель откажется от приза, книга будет разыграна среди подписчиков, оставивших комментарии к этому посту. Посылка будет отправлена ТК или другим удобным способом

Ещё раз спасибо всем! Без вас я бы не справился! 🙏
Жмём на кнопку выше!
Please open Telegram to view this post
VIEW IN TELEGRAM
65🔥31🎉4👍3👾2🤩1💯1🏆1🍾1
Детектив данных
Жмём на кнопку!
🎉 Результаты розыгрыша:

Поздравляем победителей!

1. Андрей Графики которые убеждают
2. Анна Погружение в аналитику данных
3. Olga Статистика и котики

Книги уезжают в Кемерово, Рыбинск и Тюмень!!! 🚚 🚃 🛫

Проверить результаты
👏19🔥6🎉6👍3🙏2💔2
Они все лучше меня… 🤦‍♂️

Круглосуточно обитая в телеграмме, читаю кучу профессиональных блогов.

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

И таки недавно получил кучу комментариев, которые писали что и я в какой-то степени смог смотивировать людей, к каким-то переменам. И я подумал, да как же это круто. 🤟

В очередной раз понимаю что всегда кто-то будет круче, экспертней и опытней. Но только работа над собой принесёт результат. И не стоит впадать в уныние и апатию, когда что-то не получается и бесконечный поток чужих успехов кажется бурной рекой в которую тебе не войти.
Всё обязательно получится! 🍸

#разговоры_о_важном

ПС: я продолжаю какое-то непоследовательное вхождение в профессию и вписался на курс визуализации от дата-журналиста. Посмотрим что из этого выйдет, и обязательно расскажу и вам.
Please open Telegram to view this post
VIEW IN TELEGRAM
50👍28🕊6
Кто ищет тот найдёт 📈.
#наблюдения

Залез я тут на днях на сайт ювелирных украшений (у жены скоро день рождения). 💍

И что, меня там заинтересовало? Правильно - ГРАФИКИ.

Смотрю и что-то не так 😐
Четыре одинаковых графика с разными цифрами. Долго меня уговаривать не пришлось и создаётся таблица в экселе для проверки, вбиваем выручку – у нас рост год к году в 2022 – 40%, а на 2023 – 355%.
Аж обидно что-такой крутой рост и взлёт в 2023 году никак не отобразили на сайте, а пошли в угоду дизайну и просто нарисовали один график на всё. Я на всякий случай проверил все остальные цифры, чтобы понять какой из графиков был взят за основу – да никакой).

Но пост был бы не полным 🕵‍♂️ если бы построении графика я бы случайно не выбрал диаграмму с областями, и график внезапно стал похож на «остров» а название магазина «Island Soul», ну и рука сама потянулась к градиентному заднему фону графика и значку острова в поиске – а что получилось – это у нас график с «визуальной метафорой».

И я уже для себя задумался – а где вообще может быть уместен такой график? Понятно что не на сайте. В презентации к руководству? А может быть в годовом отчете для корпоратива? Или в журналистском расследовании?

Очень интересно приходилось ли вам строить такие «нестандартные графики»? И есть ли для них жизнь? Как вы считаете?
Ставьте 🧑‍💻 если пора перестать видеть везде графики.
Кстати, зачем я заходил на этот сайт?
🔥19👍43👨‍💻3🐳2🆒2😢1
💰Вычисляем "Вес в приросте" в Superset
#оченьдлиннопост #sql #superset

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

Уверен, что статья будет полезна не только пользователям Superset, но и всем аналитикам 🕵‍♂️, которые используют SQL в своей работе, учёбе.

Больше трёх недель на поиск оптимального решения, ошибки, костыли и элегантный финал.

Ставьте лайки, пишите комментарии. Буду рад репостам.
Надеюсь данный материал будет вам полезен.

https://telegra.ph/Vychislyaem-Ves-v-priroste-v-Superset-08-17
🔥25👍7🤯21👏1🐳1🆒1
- На твоём дашборде слишком много данных. Ничего не видно. 📱
- да нормально там все видно...😁
🤣21👍10🎃4😁3🔥1💯1
А тем временем спустя несколько дней ожидания, моя статья по "Весу в приросте в Superset" с использованием Джинжи - прошла модерацию на Хабре, дав мне полноценный доступ к сайту.
https://habr.com/ru/articles/838550/
Приятно 😅 По крайней мере теперь статья нормально проиндексируется поисковыми системами и кому-то да поможет )
Поставьте лайк на хабре если сможете )
👍43🔥11💯3🐳1
Channel name was changed to «Детектив данных 🕵️»
Channel photo updated
Детектив данных 🕵️: Два года спустя

Вот и прошло два года с тех пор, как я запустил канал "В аналитику после 30 📊 От Опера до Джуна". За это время я вкатился, сменил три работы, да и канал довольно сильно вырос.

Два с половиной года назад, я отложил учебу на «потом», и спустя 6 месяцев - осознал, что из-за поиска «лучшего момента», я опять никак не продвинулся, и остался на том-же уровне. И был бы минимум на полгода «умнее» себя в данный момент. Собственно говоря, в этот день канал и появился. Первая цель была обозначена прямо в названии.

Никогда не будет лучшего момента для начала к изменениям, чем прямо сейчас.

Не так давно, получил предложение о вхождении в штат «Детективного Агентства», при зарплате примерно на 30% выше моей текущей. Я отклонил это предложение.
Я понял, что нахожусь на своем месте и у меня впереди большие перспективы и бесконечные возможности для развития. И мимолётная прибавка к зарплате этого не стоит. Я прошел тот этап, взял все самое лучшее и теперь иду по новому пути, с улыбкой и ностальгией вспоминая былые времена и десяток-другой историй, которых в обычной жизни никогда и не встретишь.

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

С новым названием к новым свершениям! 🕵️
Ниже ссылка на буст канала для обладателей ТГ Премиум
https://news.1rj.ru/str/boost/detective_data
1🔥48👍20👏54🍾3🌭2❤‍🔥1👌1😍1🌚1🆒1
Как я получал зарплату просто так 💵:

Вспомнился один анекдот: 😅
- У Вас интересный опыт, на последнем месте работы Вы были руководителем. Сколько человек у вас работало?
- Примерно… Половина…


Долго думал рассказывать ли об этой "истории"... А почему бы и нет?

Казалось бы совсем нереальная ситуация, но однажды и я столкнулся с таким явлением.

Подготовил для вас небольшое Бинго, отмечайте совпавшие ячейки: ✍️

В общем, в этой безымянной компании я собрал примерно 1️⃣5️⃣ пунктов и несколько месяцев просидел на стуле без задач. Зарплата была может и не фонтан, но и не маленькая. Соотношение цены и качества сильно ушло в сторону цены. Я всё думал: «Ну когда же работа начнётся?» - а работа так и не началась. В какой-то момент, руководитель просто перестал звонить, как будто ему стало неудобно ставить мне задачи.
Думал о параллельном проекте, но в целом просто занимался учебой – не каждый работодатель даст такую «уникальную» возможность.
В какой-то момент я понимал, что уйти – это просто будет честно, и перед собой и перед компанией. Хотя казалось все мы наверное мечтали о такой работе, но по факту всё получилось не так однозначно.

ПС: Перечитав пост, да и лишний раз проанализировав ситуацию, я задался вопросом?
А были ли муки «не честности и не реализованности» если бы зарплата была х2? А если бы х3? 💵💵💵
Хороший вопрос, на который у меня нет ответа.

Сколько зачеркнули ячеек, и что бы вы добавили в список?
На сколько недель/месяцев/лет бы вас хватило?
Пишите свои истории в комментариях!
📱

Ссылка на буст канала - хочу сделать тематическую реакцию.
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤣8🔥5😱43💯2🫡1🙊11
Неделю назад статья на Хабре по суперсету, а сегодня онлайн доклад в Комусе по самостоятельному ограничению доступа к данным на суперсет с помощью Jinja, без использования групп и ролей. Пока готовился и статейка небольшая насобиралась.

Волнуюсь жуть.

UPD: все получилось, спасибо за 🔥 я справился, лекция прошла хорошо, даже доп вопросы были адекватные и интересные, помогли дополнить материал, который думаю на днях покажу
1🔥426👏5👍3🫡3
Ожидание: сегодня расслаблюсь и не буду думать о работе.
Реальность:
🤣54😁13🔥6👍1
И премия отец года достается...

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

Звонок от жены:
- привет, а ты ребенка из школы забрал?
- ...
- ребенка из школы забрал в час тридцать?
- я тебе перезвоню...

А как у вас проходит вторник?
😁46🏆11👨‍💻3
В процессе подготовке будущего поста, вечером в пятницу сижу и рисую графики 🕵️
#трейлер
🔥22👍9🤣7
Какие зарплаты обещают нам курсы по "Аналитике данных" в 2024? 🕵️

Зайдя на страницу курса, в надежде смены профессии «студент» захочет узнать что его ждёт по зарплате. Изначально я предположил, что все курсы обещают примерно одинаковые суммы, но внимательно изучив сайты курсов понял, что это не так.

Главный вывод: ни один из продавцов курсов ни указал нормальной ссылки на исследования зарплат на рынке, или на методику их расчёта. Мне кажется довольно интересный результат. Вместо аналитики от наших «учителей статистики» - мы получаем лишь очередную манипуляцию, либо вообще не находим значимой информации.

В этот раз расследование начинаем с конца: убийца – садовник, подробности – далее.

В исследовании приняли участия 7 курсов с первой страницы Google: Яндекс Практикум, Нетология, Склифактори, Карпов Курсес, Скилбокс, Эдисон и Хекслет. Особняком остались курсы от Simulative, и ВШЭ – информации о будущих зарплатах там просто нет.

На что же ссылаются наши продавцы при указании ожидаемых зарплат?
- Яндекс практикум, ссылается на исследование от блога «Хабр Карьера» на 1 полугодие 2023 г., Хекслет на второе полугодие 2022 без ссылки на сайт.
- Нетология ссылается на сайт hh – без каких либо исследований, Скилфактори так же ссылается на hh (без ссылки) и на международный сайт indeed.
- Карпов, Скилбокс и Эдисон – даже не пытаются дать какие либо ссылки или пояснения. Просто поверьте нам.

Хотя казалось бы, кого как не аналитика мы ожидаем видеть вечно сомневающимся? Докапывающегося до сути. А откуда данные, а правильные ли они? А какая собственно говоря методика расчёта? Используются ли средние значения, или медианные? А что это значит? Представьте - зашёл на сайт и тут же получил дозу полезной информации о статистике. И будто стал более эрудированным человеком, вспомнил со школьной программы что такое медиана.

Интуитивно больше всего доверия хочется выразить курсам, ссылающиеся на Исследования Хабра (Яндекс и Хекслет) –заходим на Хабр и изучаем. Первое что бросается в глаза, то что подобное исследование Хабр ведет со второго полугодия 2017 года, а на сегодняшний день последний пост за 1 полугодие 2024. Все курсы снова мимо – данные неактуальные. Самое интересное дальше – в исследовании нет деления на джунов, мидлов и синьоров. Всё что мы там видим – это 10/90% перцентиль и медианную зарплату «Аналитика данных»

Откуда наши курсы взяли информацию? А этого мы не знаем, так как маркетинг важнее данных.
Кто-то завысил, а кто-то занизил? Случайно или специально? А может чтобы карьерному центру было проще устраивать на работу джунов? Мы же обещали 50 тысяч. Вот получайте.

Минутка теории о показателей в исследовании Хабра: 10 перцентиль — это отметка, ниже которой находится только 10% зарплат. Условно можно смотреть на эти цифры как на минимальную и максимальную зарплату в специализации. Медианная зарплата, похожа на среднюю только лучше подходит для оценки зарплат. 50% специалистов получают зарплату меньше и 50% больше указанной цифры.
На хабре мы не просто получили сухие цифры на веру – мы получаем методику расчёта. А также видим там калькулятор зарплат, на основании которого исследование и проводилось. Самое интересное что просто так подробностей не посмотреть. Чтобы провалится в калькулятор до грейдов конкретной специализации, нужно зарегистрироваться на сайте и указать свою зарплату, что служит фильтрацией для большинства случайных пользователей.

Для вашего удобства, добавил в графики актуальную информацию о зарплатах с Хабра. Статистически указанный, промежуток между 25 и 75 перцентилями — вилка самых вероятных зарплат.

Что хочется сказать, когда мне продают курс, и дают информацию о зарплатах 2022 года... Думаю что это неправильно. Да на самом деле меня просто бомбит. Я еще десять раз корректировал свои выводы. Обновить данные - хоть помесячно - дело 5-10 минут. Потратит ли кто-нибудь это время? Нет.

Намеренно не делаю выводы по курсам. Изучайте сами.
Ставьте лайк за визуал 📊 я старался)
🔥52👍3412💯4🫡1💊1