TGViewer
Channel Public Channel
Мир аналитика данных

Мир аналитика данных

@analysts_world

Пишу о рабочих буднях аналитика. Тут много рабочего кода, прохождение собеседований и еще много всего полезного.
https://www.linkedin.com/in/valeriashuvaeva
Автор канала: @Valeria_Shuvaeva
Subscribers
4.56K
Photos
143
Videos
3
Links
114

Showing posts older than #124 · Back to latest

Older Posts 20 shown
Post #123 2.1K
  • ✍ 1
Post #122 2.96K
💥 Всех с праздником! 🎁🎖 Хочу пожелать и мужчинам, и женщинам сил, терпения, вдохновения и большего упорства в достижении своих целей!!! 🍀

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

Я объявляю набор на второй поток обучения. Стартуем в начале марта. И в связи с праздником предлагаю большую скидку!🎁

Если Вы именно сегодня купите курс, то он будет стоить 1️⃣6️⃣ тысяч вместо 20-ти. Вот ссылка
В курсе два блока (4 занятий по SQL и 6 занятий по Питону, упор на библиотеку pandas).

В чем фишка именно моего курса?

🎯Я буквально на пальцах объясняю темы в связке с реальной работой аналитика.

🎯Занимаемся два раза в неделю – это оптимально для усваивания информации и проработки д/з

🎯У нас очень много практики - а значит, по окончании курса вы уже сможете решать реальные рабочие задачи.

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

🎯Есть материал и в текстовом виде. Сможете лучше запомнить, если еще прочитаете.

🎯Ставим по инструкции каждому PostgreSQL и Dbeaver для отработки SQL запросов. В каждом втором тестовом просят написать какой-то запрос на SQL. И у вас уже будет среда, в которой можно будет протестировать код.

🎯Для питона ставим Anaconda. Там есть Jupyter Notebook, в котором работают большинство аналитиков. После занятий у вас останутся юпитерские блокноты со скриптами - сможете использовать в работе.

🎯И конечно я на связи в ТГ и помогаю и с установкой, и с какими-то вопросами по занятиям.

💸Покупайте курс со скидкой.

❓Если остались вопросы, то можно задать их в комментариях или в личке @Valeria_Shuvaeva
  • ⚡ 6
  • ❤‍🔥 5
  • 🥰 2
  • 🤡 2
Post #121 2.44K
Меня преследует.. биннинг.

Задали тут мне рабочую задачку на исследование среднего ценового сегмента в разрезе определенных категорий. И попросили сделать с шагом в 10 тыс руб. А там суммы до 500 тыс доходят!

Я подумала, ну не вручную же через loc прописывать! И с помощью функции cut я когда прописывала по группам, то тоже вручную определяя интервалы (вот тут смотрим). Но тогда количество этих интервалов было адекватное 😜
Думала, думала и придумала нагуглила, что можно сделать.

💡В игру опять вступает cut, но теперь c дополнительным вариантом для определения интервалов!
Вот, что получается:
У нас есть какой-то датафрейм, создадим его из словаря 
df = pd.DataFrame({'deal_id': [11111, 11112,11113,11114,11115,11116,11117,11118,11119,11120],
'amount': [10000,20050,30500,45000,50001,62000,70000,81000,92000,100500]})

Пропишем интервал с нуля, частотой в 10 тысяч и пределом в 500 тыс (end=500000)
interval_range = pd.interval_range(start=0, freq=10000, end=500000)
df['type'] = pd.cut(df['amount'], bins=interval_range)


И вуаля! Собственные метки мы определять не можем, но меня и готовые автоматические устраивают (то, что в type прописалось).
  • 👍 24
  • ❤ 6
Post #120 2.62K
▶️ NEWHR Data провёл исследование продуктовых и дата-аналитиков. Они спросили у респондентов, за какими экспертами, подкастами, каналами в Telegram и YouTube они следят.
Опрошенные аналитики указали 500 разных имён и названий медиаресурсов.

И я, вот это приятный сюрприз 🎁, в их числе ❗️❗️❗️Офигеть, как приятно, что кто-то из вас написал про канал!

Вся таблица со всеми списками -> Тык
А их статья вот тут
  • 🔥 29
  • 🍾 6
Post #119 2.69K
🎭 Посмотрела в выходные интервью Сэма Альтмана. Это глава OpenAI. Компания, которая разработала известный ChatGPT.
Его цитата:
Мы делали то, что отличалось от других компаний, которые я видел. Я думаю, что инвесторы из кремниевой долины не поддержали бы нас на том уровне, который нам был нужен.


К чему это я.. 💬 Он делал то, что ему нравилось и то, что он хотел. Он знал, что это “выстрелит”.

А как часто нам говорят или мы сами думаем, что у нас не получится что-то. Вот даже с тем, чтобы вкатиться в IT. Из всех щелей слышим: “Ой, сейчас сложно, такие времена. Вот раньше проще было. Ну куда Вы сейчас? Все уже занято. Вот если бы 5/3/2 года назад”

Мне его интервью откликнулось именно этой его верой в себя. Да, будет сложно. Мы не фантазеры, реальность понимаем ⛅️, но если очень хочется и если мы не просто сидим попой на диване, а учимся и пытаемся, то рано или поздно та самая вакансия нас найдет! 🎯Я уверена. 🍀 Это, матерное слово, закон притяжения.

Отставить страх! Он нам уже не нужен, нужно желание и вера в свои силы!
Вот, что я хотела Вам сказать. Надо верить именно себе. Пытаться понять – вы реально хотите этого? Если – да, то не опускать руки!
  • 🔥 31
  • ❤ 9
  • 👍 8
Post #116 2.43K
🌟 Часто ли вы используете case? Эта конструкция используется в SQL запросах. А еще ее можно оборачивать в агрегирующую функцию. Приведу рабочий пример. Нам нужно посчитать сумму выручки в рублях. Тут я не пишу группировку и т.п. Разберем именно как считается в select эта сумма с помощью case.

Select sum(case 
when currency = 'RUB' then amount
when currency = 'RUR' then amount
else (amount * rate) end) as 'all_sum'


В when мы задаем условие и то, что нам нужно получить при его выполнении. Если валюта указана рублевая (RUB или RUR), то просто берем эту рублевую сумму.

А вот если валюта другая, то в else мы умножаем сумму на курс, то есть выполняем то, что условию не соответствует. В конце после end прописываем алиас as - то есть как будет называться столбик.

А еще в результате после then также можно делать расчеты (умножать, делить и т.п).

💡Об этом и о многом другом буду рассказывать на курсе 1го числа, который стартует уже в этот четверг.
Но и ВАС я не оставлю без знаний конечно. ❤️ Смотрите на скрине из занятий как можно использовать case, группировку, вложенный запрос, фильтрацию where и сортировку. И все в одном запросе! 😮
  • 👍 17
  • ❤ 2
Post #114 2.23K
Ссылка была неправильная, поэтому перезапуск 🤪
  • 👍 1
Post #113 2.43K
То, что я запускаю свой тренинг не значит, что я не рекламирую другие. 🤪 На вкус и цвет фломастеры курсы разные и всегда должен быть выбор ✌️
  • 👍 10
  • 😁 2
  • 👌 1
Post #111 3.04K
Постоянно нахожу что-то новое. Не было, не было и вот опять 🤪
Я вот тут показывала как я делю на группы в столбце с помощью np.where() и loc.

Допустим есть датафрейм по выручке🎩
df = pd.DataFrame({'Name': ['client_1', 'client_2', 'client_3', 'client_4','client_5'],
'Revenue': [500, 1000, 800, 3000, 2500]})


📍Мне нужен создать столбец, основываясь на данных столбца Revenue:
Разобьем выручку на следующие группы. Обычно я использую атрибут loc[]. Мне так удобнее.
df.loc[df.Revenue <1000, 'Group'] = '<1000'
df.loc[(df.Revenue >=1000)&(df.Revenue <2000), 'Group'] = '1000-2000'
df.loc[df.Revenue >=2000, 'Group'] = '>=2000'


✏️ А теперь попробуем сделать это с помощью биннинга! Есть функция cut
Вот так можно разбить на несколько тех же групп
df['Group2']=pd.cut(df['Revenue'],bins=[0,999,2000,np.inf],labels=['<1000','1000-2000', '>=2000'])


Я прям теперь даже не знаю, что мне больше нравится. Тяжело когда такой богатый выбор 💎
  • 👍 23
  • ❤ 7
  • 🆒 1
Post #109 2.6K
🎉 Старый Новый год - это ещё один шанс начать жизнь с чистого листа и воплотить свои мечты в реальность! 🌟
В этот праздничный период я хочу предложить вам классную возможность оплатить мой тренинг в рассрочку! 💫

Назовем эту акцию “Старый Новый Год: шанс на успех”.
Немного математики вас не испугает? 20 тыс за 10 занятий, то есть 2 тыс за одно занятие. За два занятия соответственно платите 4 тысячи. Если есть силы и деньги через неделю занятий, то опять оплачиваете 4 тысячи и занимаетесь еще 2 занятия и так далее.
Оплата через сайт самозанятых в размере
4️⃣🔤🔤🔤 рублей тут. 🎆
Тех, кто уже оплатил полностью ждет секретный подарок в качестве бонуса! 🎁
Пусть этот “Старый Новый Год” принесет вам знания, надежду и новые свершения! 🎉

Ну и немного тестовых от разных компаний, которые мне прислал @sds600 Спасибо ему за них!
✔️1.Проанализируйте выгрузку из appsflyer. Выделите в отдельный отчет трафик, который кажется вам подозрительным. Объясните свое решение. Что можно сделать для автоматизации вычета подозрительного трафика?
✔️2. Несколько заданий на SQL
✔️3. Проанализируйте данные отчета из Google Analytics.
Кратко опишите, какие особенности и аномалии вы видите и как их можно учесть, какие выводы можно сделать, какие можете дать рекомендации на основании данного отчета?
✔️4. Сделайте выводы на основе данных

P.S. На картинке отзывы выигравших консультацию. Все три проведены! 💪
  • 👍 15
  • ❤ 4
Post #108 2.68K
🔥 1 февраля я запускаю тренинг “Старт в аналитике” длиной всего в один месяц!

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

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

Да и вообще, невозможно знать все, я до сих пор нахожу новые функции в питоне, которые стараюсь применить на практике. Учиться нужно на работе, а курсы брать либо работая, чтобы повысить квалификацию, либо недорогие, чтобы понять минимальную базу.

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

✔️ Повторюсь, что 1 февраля я запускаю тренинг “Старт в аналитике” длиной всего в один месяц! Будем заниматься два раза в неделю – это десять групповых онлайн занятий со мной, где я показываю вам выжимку необходимых знаний по SQL и Питону на практике и без воды.
После этого вы спокойно вписываете в свое резюме эти навыки и уже пробуете откликаться на вакансии.

Весной, как правило, очень много вакансий. Усиленно позанимавшись в феврале, в марте вы будете с hard skills в резюме.
Как мы будем заниматься:
🎯Сначала установим по инструкции каждому PostgreSQL и Dbeaver для отработки SQL запросов. В каждом втором тестовом просят написать какой-то запрос на SQL. И у вас уже будет среда, в которой можно будет протестировать ваш код.

🎯А для питона установим Anaconda, там есть Jupyter Notebook, в котором работают большинство аналитиков. После занятий у вас останутся юпитерские блокноты со скриптами.

🎯 Ну и в финале я просмотрю ваши резюме и дам рекомендации по улучшению.

💸Цена тренинга 20 тыс.руб.💸 Сейчас она минимальна 🔽и действует до пятницы включительно. Позже будет на 5 тысяч дороже.🔼

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

Оплатить можно тут. В комментарии укажите свой ник в телеграме
Если остались вопросы, то можно задать их в личке @Valeria_Shuvaeva
  • 🔥 24
  • 🤣 5
  • ❤ 2
  • 👍 1
Post #107 2.17K
Смотреть на огонь можно бесконечно долго. Сидеть, греться, очищать разум.. .🔥

Всем хорошо отдохнуть, перезагрузиться в оставшиеся праздничные дни и подумать о том каким мы хотим видеть следующий год, что хотим сделать в нем, какими быть.. ✌️🎉🎄
  • ❤ 15
  • 🎄 5
  • 👍 3
Post #106 2.37K
🌲🌲🌲 С наступающим праздником, друзья!

🥰Желаю каждому из Вас, чтобы в следующем году самые смелые планы осуществились и самые оптимистичные прогнозы оказались скромнее реальности! 🍀

🥰Желаю каждому из Вас найти свое призвание (видов аналитиков много и это хорошо), которое будет приносить радость, достаток и удовлетворение в Новом году! Осуществляйте свои мечты, берегите здоровье, наполняйтесь энергией и верьте в себя! 🔔

🥰Тем, кто только делает первые шаги в IT, можно пожелать терпения и упорства. Не бойтесь ошибаться и учиться на своих ошибках, ведь это бесценный опыт. Стремитесь к саморазвитию и не останавливайтесь на достигнутом. Мир IT постоянно меняется и развивается, поэтому нужно быть в курсе всех новинок и тенденций. Удачи вам в освоении новых технологий и успехов в карьере! 🌟🌟🌟

P.S. А я убегаю резать салаты 😂🍨😋🎉
  • ☃ 25
  • ❤ 15
Post #105 2.31K
😀 ИТОГИ РОЗЫГРЫША 😀

Во-первых, спасибо огромное всем, кто принял участие! Мне было очень приятно осознавать, что людям понравился мой порыв. Этот канал я создавала в свое время именно с целью поделиться знаниями и опытом. Это уже потом мне стали предлагать рекламу (от которой глупо отказываться я считаю 😜)

Ну и раз уж у нас образовательно - просветительский контент, то я не стала использовать готовые генераторы случайных чисел в браузерах. Мы питон, в конце концов, что зря изучаем? 😂
Поэтому я написала генератор на питоне. Код вы видите в видео.

💎 Я скопировала всех участников, вставила в excel. Подтянула данные в датафрейм df_members.
💎 Потом сгенерировала порядковый номер каждому участнику range(1,кол-во участников+1)
 df_members['Номер участника'] = range(1,74)

💎 Ну и сама генерация: создаем DataFrame с 1 строкой и 3 столбцами. Числа генерируются от 1 до 73
На входе функция np.random.randint() принимает границы диапазона (верхняя граница в диапазон не входит, поэтому
ставим 74)
pd.DataFrame(np.random.randint(1,74,size=(1,3)), columns=['Победитель 1','Победитель 2','Победитель 3'])

💎 Чтобы увидеть кто победители, мы фильтруем df_members по выпавшим номерам
df_members[(df_members['Номер участника'] == df['Победитель 1'][0])
|(df_members['Номер участника'] == df['Победитель 2'][0])
|(df_members['Номер участника'] == df['Победитель 3'][0])]


🥳🥳🥳 Теперь итоги! 🎆🎆🎆

16 @s_g_olga Оля
52 @LidiyaRB LidiyR
67 @yulia1999 Julia

Победители, с Вами свяжусь в директе. 📲
🔗 Ну и всем: ловите этот юпитер ноутбук с кодом и моей картинкой It персонажа сгенерированной в app.leonardo.ai
А тут список участников. Можете поиграться с данными.

p.s. Ну и еще лайфхак - чтобы записать видео с экрана в Windows 10, я нажала клавиши Windows + Alt + R для записи.
  • 🔥 22
  • 😍 3
Post #102 2.73K
🔔 Друзья, я к вам с подарочком! 🎁🎁🎁 Скоро Новый Год 🎄и хотелось что-то вам подарить. Но что можно подарить кроме своих знаний, которые я тут и так выкладываю? Ладно, раскрою небольшой секрет. Я зарегистрирована как ментор в сообществе IT наставников на getmentor. У меня не слишком много свободного времени, поэтому я про это не рассказывала. Но кто меня там находил, тот получал помощь.

Так вот, я разыграю в пятницу три запроса на менторинг для Вас абсолютно бесплатно!
🚀. Сам созвон осуществим уже в Новом году, так как, понятное дело, сейчас в предновогодней суете всем некогда. Оставляйте комментарии тут под постом (например, хочу консультацию), а в пятницу с помощью random выберу трех счастливчиков, которые получат возможность индивидуальной консультации.
Темы для консультаций, которые я провожу:
- Расскажу о карьере в аналитике данных, путях профессионального развития и рынке вакансий. Покажу чем предстоит заниматься аналитику в IT. 📊
- Подскажу как организовать свое развитие, на что тратить время и что даст наибольший вклад в повышение квалификации
- Помогу с оформлением и корректировкой резюме. 🖊
- Просто поговорим о наболевшем в карьере, дам творческий пинок и вдохновение! 🏅

🍀 Удачи! 🍀
  • ❤ 27
  • 👍 8
  • 🎅 7
  • 👏 2
  • 🐳 1
  • 🌚 1
Post #101 2.7K
🌲🌲🌲 💡 Я не могу не поделиться замечательной новостью – в этом году у нас есть просто потрясающий новогодний подарок от karpovꓸcourses🌲🌲🌲 💡

А еще я рада, что мой блог дорос до уровня "рекламирую курсы Карпова". Раньше я и так про них говорила и про бесплатный симулятор SQL всем знакомым уши прожужжала, а теперь официально могу его пиарить и кайфовать от этого. Уровень все таки 💪

Только в декабре в karpovꓸcourses можно выгодно приобрести комбо для полной прокачки своей карьеры — «курс + один из двух симуляторов на выбор»:

▪️Курс Аналитик данных научит всем необходимым инструментам, позволит начать карьеру или внедрить все актуальные навыки аналитика в свои проекты.

▪️Симуляторы дадут более глубокое погружение и еще больше опыта решения задач:

1. В Симуляторе аналитика вы получите практику на реальных задачах в формате настоящей рабочей стажировки
2. В Симуляторе А/В-тестов еще глубже освоите А/В-тесты и станете в них настоящим экспертом

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

[Забронировать скидку]
  • 🔥 15
  • 👏 2
  • 👍 1
Post #100 2.49K
🍒🍒🍒🏆🍒😘 Теперь когда у меня есть Postgres 🐘 на компе (пост как установить тут) и она подключена к DBeaver,я могу показать вам как писать оконки на SQL. В одном из тестовых было следующее задание. Когда люди входят/выходят из здания, то это логгируется. Записывается время входа/выхода (pass_date), номер сотрудника (tab_id), адрес офиса (pass_name) и pass_direction (1 – вход, 0 - выход).
Нужно посчитать чистые рабочие часы сотрудников по дням без времени “на покурить” и обеды, когда они выходили из здания. Они могут ходить на улицу по несколько раз за день. И это тоже нужно учесть. Иногда сотрудники несколько раз прикладывают свой пропуск или пропускают по своему пропуску коллег, такое нужно исключать.

Тут нам поможет оконная функция LAG. Она используется для сравнения текущего значения колонки с предыдущим значением (в скобках смещение на 1 указала). Вот так мы узнаем время предыдущей записи:
lag (pass_date,1) over (partition by tab_id order by pass_date)


pass_date - это столбец, значение которого нужно сравнить с предыдущим значением.
partition by tab_id – берем партиции по номеру сотрудника и сортируем по дню order by pass_date

Когда мы из pass_date вычтем получившееся значение, то это будет разница между текущим временем (текущей строчкой) и временем предыдущего действия (вход либо выход) - time_diff

pass_date - lag (pass_date,1) over (partition by tab_id order by pass_date) as time_diff


Далее суммируем показатели текущего и предыдущего действия PASS_DIRECTION, тоже используя схему с lag
pass_direction +lag(pass_direction,1) over (partition by tab_id order by pass_date) as sum_enter

А теперь завернем все в подзапрос и прикрутим условие с фильтром. Мы суммируем время только когда выполняются два условия: sum_enter = 1 и pass_direction =0
sum(time_diff) filter (where (sum_enter = 1) and pass_direction =0)

В итоге:
select
working_date,
tab_id,
sum(time_diff) filter (where (sum_enter = 1) and pass_direction = 0)
from
(
select
date(pass_date) as working_date,
pass_date,
tab_id,
pass_direction,
-- разница между текущим временем и временем предыдущего действия
pass_date - lag (pass_date, 1) over (partition by tab_id order by pass_date) as time_diff,
-- суммируем показатели текущего и предыдущего действия (0+1 - то, что нужно), а если 1+1=2 - такое нам не надо
pass_direction + lag(pass_direction, 1) over (partition by tab_id order by pass_date) as sum_enter
from
test.newtable
order by
pass_date
) t1
group by 1, 2


💡 Тренируйте оконки, это прямо уже must have на собесах! Файл с данными забирайте для тренировки! 👌
  • ❤ 28
  • 👍 9
  • 🔥 4
  • ❤‍🔥 3
  • ☃ 2
  • 😁 1
Post #99 1.97K
Post #98 2.98K
🔥 Итак, разберем следующие задачки из тестового на аналитика данных в OZON. Первую часть смотрите тут

⭐️ Задание 2
Для всех строк исходного датасета, сгруппированных по номеру заказа, посчитать среднее значение времени доставки по группе. Результат необходимо добавить в новый столбец датафрейма.
У нас с прошлого задания сформировался датасет df со следующими полями:
user_id, order_number, click2delivery, order_items_sum, retention
Делаем обычную группировку:
orders = (
df
.groupby('order_number')['click2delivery']
.agg(mean_time='mean')
.reset_index()
)

Если мы пишем код в скобочках (), то можно вот так прописывать, перенося точку и метод на отдельные строки.
Ну и присоединим это среднее к основному df :
df = df.merge(orders, how='inner', on='order_number')


⭐️ Задание 3

Отдельной колонкой добавить значения последовательности, начинающейся с 0 и 1, где каждый следующий элемент является суммой двух предыдущих, умноженных на 0.5.
Задаем лист arr, а потом в цикле пока длина листа не составит 10 тыс, добавляем сумму двух предыдущих элементов, умноженных на 0.5:
arr = [0, 1]
while len(arr) < 10_000:
arr.append(sum(arr[-2:]) * 0.5)
df['seq'] = arr

Ну и еще было несколько заданий. 📎 Их найдете в файле юпитер ноутбука 👉 здесь
  • ❤ 14
  • ✍ 3
  • 💯 2
  • ⚡ 1
Older posts →
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 →