Мир аналитика данных
Пишу о рабочих буднях и о том как я сменила профессию Автор канала: @Valeria_Shuvaeva
إظهار المزيد3 572
المشتركون
+324 ساعات
-17 أيام
+1930 أيام
- المشتركون
- التغطية البريدية
- ER - نسبة المشاركة
جاري تحميل البيانات...
معدل نمو المشترك
جاري تحميل البيانات...
Меня попросили поделиться важной информацией, и я с радостью это делаю. Это для студентов и недавних выпускников. Жаль, что в мое время таких возможностей для молодых не было. Так что не упустите шанс: вас ждут ярмарка вакансий и полезные воркшопы.
🥰 1
Photo unavailableShow in Telegram
Форум молодых лидеров ждёт тебя!
⚡️Ура-ура! Спустя полтора года мы возвращаемся и приглашаем тебя 5-6 октября в Москву на YouLead 2024
Сейчас расскажем основные моменты, которые ждут тебя у нас на форуме:
🧡 Общение с лидерами мнений и экспертами в своих областях: у нас выступали Саша Жаркова, Игорь Манн, Катерина Ленгольд и др.
💙 Возможность попасть на стажировку в топовую компанию: тебе откроются двери в Unilever, Ашан, Mars, СИБУР и другие компании
🧡 Судьбоносные знакомства: форум объединит самых активных и перспективных ребят со всей страны
💙 Возможность лучше узнать себя, найти путь дальнейшего развития, получить практические знания о построении карьеры
Ты готов реализовать лидерский потенциал и стать автором изменений своей жизни?
Тогда заходи на сайт и регистрируйся по ссылке: https://youleadforum.ru/
Важно: каждому желающему предстоит пройти отбор, поэтому удели особое внимание заполнению формы регистрации!
🔥 1
Про прокрастинацию и баланс в жизни 🧠💪
Когда работаешь аналитиком данных 📊, кажется, что учёба и саморазвитие — это неотъемлемая часть успеха. Постоянно хочется освоить что-то новое, улучшить свои навыки, но... в какой-то момент понимаешь, что усталость берёт своё 😩.
Домашние дела 🧹, семейные заботы 👨👩👧👦, домашка с детьми-школьниками, и несколько человек в менторстве — всё это отнимает много сил. И вот тут появляется прокрастинация 🕰. Не потому что неинтересно, а потому что тело и разум просто требуют передышки 🛌.
И знаете, я пришла к выводу: нельзя постоянно «пахать» 💼. Наш организм подаёт сигнал, что ему нужен отдых, и это важно уважать. Если хочется замедлиться 🧘♀️ — нужно дать себе такую возможность. Отдых — это тоже часть пути к продуктивности ⚡️
Недавно я даже решилась на шаг вперёд: записалась в фитнес-клуб 🏋️♀️. Теперь забочусь не только о своём уме 🧠, но и о теле 💪. Ведь в гармонии важен баланс ⚖️ — между физическим, эмоциональным и интеллектуальным развитием.
Помните, заботиться о себе — это не лень, а необходимость ❤️.
И вот, пишу это всё в пятницу 13-го 🌘 — не знаю, совпадение это или знак, но кажется, что сегодня именно тот день, когда стоит притормозить, оглянуться вокруг и просто насладиться тем, что уже удалось достичь.
❤ 34👍 13🔥 5🥰 1
Photo unavailableShow in Telegram
Лето прошло, и кажется, все уже поплакали по этому поводу. Но кто бы мог подумать, что Notion тоже оставит нас в печали?
С 9 сентября сервис прекратит работу для пользователей из России. Это настоящее разочарование. 😭 Вся мои заметки, ссылки и курсы хранятся там, и теперь я в поисках альтернативы.
После долгих поисков наткнулась на Yonote.ru. Это не реклама, а просто находка, которая поможет заменить Notion. Конечно, можно использовать VPN, но иногда хочется работать без лишних танцев с бубном.
Что делать дальше?
✅ Экспорт данных: Первое и самое важное — экспортируйте свои заметки из Notion. Это можно сделать как для отдельных страниц, так и для всего аккаунта. Резервные копии — залог спокойствия.
✅ Ожидание: Посмотрим, что произойдет после 9 сентября. Пока нет полной ясности, как именно будут ограничивать доступ: всех ли пользователей, только платных, или же по IP. Но, почти наверняка, даже в худшем случае, сервис будет доступен через VPN. Но стоит ли это усилий? Каждый решает сам.
✅ Аналоги: Есть несколько российских вариантов:
✔️ Яндекс Заметки — для простых записей, если не нужны сложные структуры: ссылка
✔️ Заметки Mail.ru — с недавним добавлением тегов можно разделять записи по темам: ссылка
Для более сложных задач:
✔️ Yonote.ru — организация, планирование, управление знаниями.
✔️ Teamly.ru — платформа для совместной работы и управления знаниями
✔️ Weeek.net — задачи, база знаний, CRM, аналитика и многое другое
Каждый решает сам, что выбрать. Главное — быть готовым к изменениям и действовать заранее. 👩💻
А вы чем пользуетесь, кстати?
🔥 10👍 2🤨 1
Photo unavailableShow in Telegram
Освой аналитику данных, обучаясь на кейсах из реального бизнеса 💻
Тут ты не просто научишься аналитике — а будешь выполнять задачи, равноценные стажировкам для начинающих аналитиков!
👆Мы подберём персональный трек обучения под твои цели — устроиться в крупную IT-компанию или релоцироваться. А ещё поможем с прохождением собеседований
👆87% наших учеников находят работу. за 2 месяца. Наши выпускники работают в Т-Банке, Сбере, Авито, Яндексе, Skyeng, Ozon и других топовых компаниях
По итогам курса ты сформируешь готовое портфолио (такого не будет ни у кого больше). Уникальное оформление и максимально прикладные задачи из разных сфер бизнеса. Это всё невозможно сгуглить или найти на Хабре ((:
Обучайся в комфортном темпе: доступ к материалам останется у тебя НАВСЕГДА!
Ты ещё успеваешь начать обучение с текущим потоком🔥
Оставляй заявку на сайте и получи 10% скидку по промокоду ANALITIK.
👍 5😢 2❤🔥 1
Photo unavailableShow in Telegram
❓ Как правильно выбирать топ-клиентов с прерываемыми индексами?
Сперва кажется, что за бред про прерываемые индексы? Сейчас расскажу где можно ошибиться 😜
А кто не ошибается, тот не работает! Главное вовремя понять, что тут что-то не то.
💡 Итак, задача: У нас есть список клиентов и их годовые обороты. Мы хотим отфильтровать тех, у кого оборот, допустим, больше 1 миллиона, отсортировать их по убыванию и выбрать топ-3 самых крупных клиентов.
Создадим данные для наглядности:
import pandas as pd
# Создаем исходный DataFrame
data = {
'client_id': [101, 102, 103, 104, 105],
'client_name': ['Client A', 'Client B', 'Client C', 'Client D', 'Client E'],
'turnover': [1200000, 500000, 1500000, 2000000, 3000000]
}
df = pd.DataFrame(data)
📋 Шаг 1: Фильтрация и сортировка клиентов
Сначала отфильтруем клиентов с оборотом более 1 миллиона и отсортируем их по обороту от большего к меньшему:
filtered_df = df[df['turnover'] > 1000000].sort_values('turnover', ascending=False)
Теперь у нас есть DataFrame с клиентами, у которых оборот превышает 1 миллион, отсортированный по убыванию
🚫 Ошибка: Что будет, если для выбора топ-3 теперь использовать .loc?
incorrect_top_3 = filtered_df.loc[:3]
Метод .loc[:3] пытается выбрать строки с индексами 0, 1, 2, 3. Однако, после фильтрации и сортировки, индексы строк изменились, и это приведет к выбору не тех строк!
✅ Правильный подход: Используем .iloc, чтобы выбрать первые 3 строки по их позициям:
correct_top_3 = filtered_df.iloc[:3]
С помощью .iloc мы гарантированно получаем топ-3 клиента по их позициям в отсортированном DataFrame, игнорируя индексы.
✨ Вывод: Используйте .iloc для выбора строк по позициям, особенно после фильтрации, группировки или сортировки данных, когда индексы идут не подряд. Тогда результат действительно будет топовым! 🤪👍 29❤🔥 4😴 1
Photo unavailableShow in Telegram
Посчитаете LTV даже во сне?
Создайте курс для Яндекс Практикума!
Яндекс Практикум — сервис онлайн-образования, где можно получить актуальную цифровую профессию, например, продуктового аналитика. Помогите нам создать достойный обучающий контент для студентов!
Что делает автор курса?
Разрабатывает уроки, тесты, чек-листы, а если шире, то его задача так упаковать свой опыт, чтобы заинтересовать, объяснять и мотивировать.
Почему это интересно практикам?
Вы влияете на индустрию, получаете статус эксперта и дополнительный доход. Нагрузка — 10 часов в неделю, удалёнка и команда, с которой некогда скучать.
Кто подойдёт?
Продуктовый аналитик, который уже более 3 лет в профессии и чувствует непреодолимое желание делиться своими знаниями.
Подробности здесь ←
Ждём ваших откликов!
❤ 4😁 3👍 1
Photo unavailableShow in Telegram
✨ Мечты сбываются! ✨
Друзья, рада поделиться отличной новостью! Мой модуль по аналитике уже опубликован в курсе SkillFactory "IT-специалист с нуля"! 🥳 Ранее я делилась с вами, что работаю над этим курсом, вот тут.
Создание курса оказалось нелегким испытанием (особенно совмещение с основной работой), но очень интересным процессом. Я полностью уверена в том, что каждый, кто его пройдет, получит максимум знаний и навыков. Я вложила в него все, что было возможно, и спокойна за ваши результаты! 🚀
Мой модуль является частью большого IT-курса, где каждый раздел помогает изучить различные IT-профессии и выбрать свой путь в мире технологий! 👨💻
🔥 41❤🔥 6❤ 5🤡 2
Photo unavailableShow in Telegram
📊 Анализ данных: Извлечение доменов почт клиентов 📊
Привет, друзья! Меня на днях попросили проанализировать домены почт у клиента если сможем.✉️ Цитата:
полезла в базу пошла за кофе.
Покажу решение на примере SQL-запроса и Python кода.
📜 SQL-запрос
Для начала я использую SQL-запрос, чтобы извлечь домены почт из базы данных:
Типа такого: яндекс - 1,2 млн / 15% мейл.ру - …. гуглЯ ответила, что можем и
query = ""
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(email, '@', -1), '.', 1) AS mail_type, COUNT(*)
FROM user.user
WHERE client_id = 1000
AND type = 'user'
GROUP BY 1
"""
users = pd.read_sql(query, connection)
Этот запрос выполняет следующие действия:
✔️SUBSTRING_INDEX(SUBSTRING_INDEX(email, '@', -1), '.', 1)
- SUBSTRING_INDEX(email, '@', -1) извлекает часть строки после символа @ (то есть домен почты).
- SUBSTRING_INDEX(..., '.', 1) затем извлекает часть строки до первой точки в домене, чтобы получить тип почты.
Таким образом, если email выглядит как [email protected], результат будет mail. Если email выглядит как [email protected], результат будет yandex.
✔️COUNT(*) — считает количество пользователей с каждым доменом.
✔️WHERE client_id = 1000 AND type = 'user' — фильтрует данные по определённому аккаунту и типу пользователя.
✔️GROUP BY 1 — группирует результаты по домену.
💻 Python код
После получения данных из SQL-запроса, мы используем Python для дальнейшей обработки. В целом можно и в SQL написать было, но базе и так тяжело, не стала нагружать ее подзапросами.
import pandas as pd
#Сортировка данных по количеству пользователей в порядке убывания
users_sorted = users.sort_values('count(*)', ascending=False)
# Подсчёт общего количества пользователей
total_count = users_sorted['count(*)'].sum()
# Расчёт процента для каждого домена
users_sorted['percentage'] = (users_sorted['count(*)'] / total_count) * 100
P.S. Функция SUBSTRING_INDEX используется в MySQL и не поддерживается PostgreSQL. В PostgreSQL для аналогичной задачи нужно использовать
split_part(split_part(email, '@', 2), '.', 1) AS mail_type
Цифра 2 в функции split_part(email, '@', 2) указывает на то, что мы хотим получить вторую часть строки, разделённую символом '@'. Мы разделяем email на две части: до символа '@' и после него. Нам нужна часть, идущая после символа '@', то есть домен почты.
📝 Результаты
После выполнения этого кода мы получаем таблицу, отсортированную по количеству пользователей для каждого домена, с процентным значением.
Теперь понятно какие почтовые домены наиболее популярны среди пользователей. ✉️👍 28❤ 4
📊 ⚡️Хитрая задачка с работы. Возвращение. 📊
👨💻Наконец удалось выкроить время, чтобы поэкспериментировать с этой хитрой задачей, и теперь у меня есть решение, которое не использует циклы! Всё сделано исключительно с помощью Pandas!
Давайте разберем его пошагово:
1️⃣Генерация данных как и в прошлый раз💾
Здесь мы создаем список словарей, где каждый словарь содержит client_id и строку value с информацией о рассрочках.
import pandas as pd
data = [
{ 'client_id': 111,
'value': 'installment_0_0_3_7,59 Срок рассрочки 3 мес.'
'installment_0_0_4_8,42 Срок рассрочки 4 мес.'
'installment_0_0_6_10,84 Срок рассрочки 6 мес.'
},
{
'client_id': 222,
'value': 'installment_0_0_3_4,93 Срок рассрочки 3 мес.'
},
{
'client_id': 333,
'value': 'installment_0_0_4_5,64 Срок рассрочки 4 мес.'
'installment_0_0_6_6,05 Срок рассрочки 6 мес.'
},
{
'client_id': 444,
'value': 'installment_0_0_3_7,78 Срок рассрочки 3 мес.'
'installment_0_0_6_9,60 Срок рассрочки 6 мес.'
},
{
'client_id': 555,
'value': 'installment_0_0_4_8,57 Срок рассрочки 4 мес.'
'installment_0_0_6_8 Срок рассрочки 6 мес.'
}
]
df = pd.DataFrame(data)
2️⃣Извлечение данных (сроков рассрочки и ставок из строки value) с использованием регулярного выражения 🔍
extracted = df.set_index('client_id')['value'].str.extractall(r'installment_0_0_(\d+)_([\d,]+)')
extracted = extracted.reset_index(level=1, drop=True).reset_index()
extracted.columns = ['client_id', 'term', 'rate']
3️⃣ Преобразование данных в нужный формат 🔄 Преобразуем строковые значения в числовой формат и добавляем текстовое описание к срокам рассрочки.
extracted['rate'] = extracted['rate'].str.replace(',', '.').astype(float)
extracted['term'] = 'Срок рассрочки ' + extracted['term'] + ' мес.'
4️⃣Определение условий фильтрации 🕵️♂️
Задаем условия для фильтрации данных по срокам рассрочки и максимальным допустимым ставкам.
conditions = {
"Срок рассрочки 3 мес.": 5.93,
"Срок рассрочки 4 мес.": 6.64,
"Срок рассрочки 6 мес.": 7.05
}
5️⃣Фильтрация данных 📊
filtered_df = extracted[extracted.apply(
lambda row: row['term'] in conditions and row['rate'] <= conditions[row['term']], axis=1
)]
📎 Вот ссылка на обновленный Jupyter Notebook. В нём вы найдёте ещё дополнительные варианты решения, которые прислал Дмитрий в комментариях. Спасибо ему за это! 🙂🔥 16👍 2❤ 1
اختر خطة مختلفة
تسمح خطتك الحالية بتحليلات لما لا يزيد عن 5 قنوات. للحصول على المزيد، يُرجى اختيار خطة مختلفة.