Analyst’s Notebook📖
340 subscribers
43 photos
26 links
Жизнь аналитика: карьера, образование, хард и софт скиллы etc
Автор: @glebgavrin
Download Telegram
Всем привет! Меня зовут Глеб

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

Кто я? 🧑‍💻
Мне 20, учусь на Факультете экономических наук НИУ ВШЭ и уже год работаю аналитиком в крупном банке.

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

О чём я буду писать здесь? ✍️
Вот какие темы и хештеги вы здесь встретите:

#жизнь_аналитика
— Как совмещать работу и учебу
— Истории из офиса и не только
— Мысли о карьере и развитии

#софт_скиллы 🗣
Опыт коммуникации с командой и менеджерами, презентации результатов, критическая оценка задач

#аналитические_методы 🔎
Всевозможные аналитические приемы и методы, которыми я пользуюсь и хочу поделиться

#визуализация_данных 📊
Красивые и понятные способы визуализации (matplotlib, seaborn, plotly etc)

#образование 👨‍🎓
Мои отзывы о курсах, связанных с анализом данных

#карьера 🚀
Здесь я буду рассказывать, как войти в анализ данных и продолжать развиваться

#из_моей_практики 💡
Интересные закономерности и явления, которые я обнаружил в данных

А также технические теги: 🖥
#sql #python #ml #статистика

#offtop 🍿
Всё, что не вошло в другие рубрики

Почему вам может быть интересно?
Если вы начинающий аналитик, студент или просто интересуетесь данными — вам сюда.

Чем могу быть полезен?
Пишите мне в личку @glebgavrin с любым вопросом. Обещаю, что отвечу и постараюсь помочь!
Мои проекты и код: Github - здесь я выкладываю свои выполненные ДЗ с курсов, пет-проекты и т.п


Подписывайтесь — вместе будет интересно!❤️
7🔥4💯1😭1👻1
Analyst’s Notebook📖 pinned «Всем привет! Меня зовут Глеб В этом канале я буду публиковать самое интересное, с чем встречаюсь на работе или учёбе. Кто я? 🧑‍💻 Мне 20, учусь на Факультете экономических наук НИУ ВШЭ и уже год работаю аналитиком в крупном банке. Мне безумно нравится анализ…»
Классный способ визуализации, который открыл для себя недавно

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

В чём суть?🤔

Берём два категориальных признака (в моём примере — IT-специализация и грейд) и для каждой их комбинации строим boxplot. Это позволяет одним взглядом оценить комплексное влияние двух факторов на целевую переменную.

Какие инсайты можно найти? 💡

Вот что я обнаружил на примере датасета с зарплатами в IT:
• Чёткий рост зарплаты от middle к senior почти во всех специализациях
• В сфере Research and Advanced ML джуны получают неожиданно много — часто больше, чем миддлы в других направлениях. Вероятно, сказывается высокий порог входа и нехватка сильных кадров
Аномально высокие зарплаты у некоторых джунов (например, 300к у AI Developer) — возможно, это ошибки в данных или уникальные кейсы
• Самый перспективный карьерный рост (по разрыву в зарплате между грейдами) — в ML Engineering, Management и Data Engineering

Как это построить?
🛠

Вот пример кода на Python с seaborn:

import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(10, 8))
sns.boxplot(x='experience_level', y='salary_in_usd', hue='job_category', data=df, palette='Set2')
plt.title('Зависимость зарплаты от грейда и сферы деятельности', fontsize=15)
plt.xlabel('Грейд')
plt.ylabel('Заработная плата, $ в год')
plt.legend(title='Сфера деятельности')
plt.tight_layout()
plt.show()

Ссылка на датасет
А как вы визуализируете подобные зависимости?
💬

Буду рад обсуждению в комментариях!

Ставьте ❤️, если уже используете такой подход
Ставьте 🔥, если раньше не видели, но теперь обязательно возьмёте на вооружение!

#визуализация_данных #python #аналитические_методы #из_моей_практики
🔥113👏3😍1😈1
Продвинутый метод pandas, который обожают на собесах 💥

Расскажу про explode() — метод, который буквально «взрывает» датафрейм, превращая списки в ячейках в отдельные строки. Элегантная альтернатива циклам.

▫️ Как работает?
DataFrame.explode(column, ignore_index=False)

· ignore_index=False — сохраняет исходные индексы (появятся дубли)
· ignore_index=True — пересобирает индекс с нуля

▫️ Пример «взрыва»

Например, у нас есть датафрейм с пользователями и списками городов, в которых они побывали

Было:
| user_id | cities          |
|---------|-----------------|
| 1 | [Москва, Сочи] |
| 2 | [Казань] |

Стало после df.explode('cities'):
| user_id | cities  |
|---------|---------|
| 1 | Москва |
| 1 | Сочи |
| 2 | Казань |


🔥 3 потенциальных способа применения:

1. Анализ популярности городов
cities_popularity = (df.explode('cities')
.groupby('cities')['user_id']
.count()
.sort_values(ascending=False))

2. Поиск пользователей по городам
target_cities = ['Москва', 'Лондон']
filtered_users = (df.explode('cities')
.query('cities in @target_cities')['user_id']
.unique())

3. Создание парных комбинаций
from itertools import combinations

tags_pairs = (df.explode('cities')
.groupby('user_id')['cities']
.apply(lambda x: list(combinations(x, 2)))
.explode()
.dropna())


💡 Личный опыт
Именно этот метод помог мне красиво решить задачу на собеседовании в ❤️!

Ставьте ❤️, если уже использовали explode()
Ставьте 🔥, если раньше не использовали, но теперь обязательно возьмёте на вооружение!

💎 Полезный метод?
Сохраните в закладки
— пригодится на собеседовании!

#python
#аналитические_методы
#pandas
#вопросы_с_собеседований
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15🆒3👏2
Инсайт из данных: почему опыт не всегда конвертируется в доход 👨‍🦳

Этим летом я проводил эконометрическое исследование, изучая влияние различных факторов на заработные платы в регионах России.

Для регрессионного анализа я выбрал данные по жителям Челябинска и Челябинской области.

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

Позже я поискал похожие исследования и понял, что такая ситуация стандартна при моделировании зарплат, и многие эконометристы сталкиваются с ней.

Как можно заметить такую зависимость?

Я построил модель, где целевой переменной является логарифмированная зарплата, а среди регрессоров есть возраст и квадрат возраста. Пример кода для построения такой модели:

ols_10_logwage = smf.ols('log_wage ~ age + I(age**2) + educ + female + smoke', data=df).fit()
print(ols_10_logwage.summary())


И ключевые моменты из получившейся таблички ANOVA:

                            OLS Regression Results                            
Ключевые коэффициенты:
age 0.0605 (p=0.109)
age^2 -0.0007 (p=0.077) ← значим на 10%
female -0.5787 (p=0.000) ← значим
educ 0.1646 (p=0.008) ← значим


Заметим, что коэффициент перед регрессором age^2 статистически значим и отрицателен.
Как мы помним из школьной алгебры, парабола с ветвями вниз задается уравнением y = -ax^2 + bx + c.

Можем сделать вывод, что с возрастом зарплата растет, потом достигает пика и начинает снижаться.
При этом мы можем определить возраст, после которого начинается снижение - это точка максимума параболы, то есть -b/2a.

В своем исследовании я так же построил 2 полиномиальные регрессии - отдельно для женщин и мужчин ( визуализации регрессий на графике).
И вот какие закономерности для мужчин и женщин удалось выявить:

- у женщин снижение зарплаты начинается позже - после ~50 лет

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

- зависимость у обоих полов нелинейная

Почему возникает такая зависимость? 🤔

Почему зарплата в начале растет с возрастом ясно - молодые специалисты нарабатывают годы стажа и вместе с этим постепенно растет их зарплата.
Интереснее поразмышлять над причинами спада после ~ 45 лет.

Для себя я выявил такие причины:

- возрастная трудовая дискриминация: компании не хотят нанимать, а соответственно, и платить высокие зарплаты, возрастным специалистам, так как тут больше рисков (чаще болеют, менее мотивированы)

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

А как вы объясняете данную зависимость?

Пишите в комментариях💬

Ставьте ❤️, если знакомы с этой закономерностью,
🔥, если подчерпнули для себя что-то новое
И 🤩, если хотите больше подобных постов

Ссылка на мое исследование🔗

#исследование_зарплат #статистика #эконометрика #анализ_данных
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥6🤩6👍1🤔1😈1
Как взаимодействие признаков спасло мою модель: разбор кейса 🛟

Продолжаем серию постов про эконометрическое исследование зарплат (первый пост), и на этот раз разберем перекрестные переменные (переменные взаимодействия) на конкретном примере.

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

В моем исследовании удачным оказалось взаимодействие пола (0-м/1-ж) и уровня образования (0-школа, 1-колледж, 2-универ).

Теперь разберем конкретно мой кейс

Сначала модель была такой:
log_wage ~ age + educ + female

Тест Рамсея показал, что модель неправильно специфицирована.

Добавил квадрат возраста — тест все еще показывал проблемы. Тогда добавил взаимодействие образования и пола.

Новая модель:
log_wage ~ age + I(age**2) + educ + female + educ:female

Результаты:
• Все регрессоры стали значимы на 10%
• Тест Рамсея: модель теперь верна
• R-squared adjusted вырос с 0.252 до 0.286
• Обнаружен значимый эффект взаимодействия

Как интерпретировать коэффициенты?

В модели с взаимодействием:
educ: влияние образования для мужчин (female=0)
female: разница в зарплате при нулевом образовании (educ=0)
educ:female: дополнительное влияние образования для женщин

Что на практике?

Для мужчин (female=0):
Каждый уровень образования увеличивает зарплату на ~33.5% (коэф. 0.3352, p=0.000)

Для женщин (female=1):
Общий эффект: 0.3352 + (-0.2827) = 0.0525
Каждый уровень образования дает всего ~5.3% прибавки

Гендерный разрыв:
educ:female = -0.2827 (p=0.009) — отдача от образования для женщин значительно ниже
female = -0.2775 (p=0.057) — на старте карьеры женщины уже получают меньше

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

Главный инсайт:
Проблема не только в том, что женщины получают меньше. Они получают значительно меньшую отдачу за каждый уровень образования.

Ставьте ❤️, если использовали перекрестные переменные
🔥, если будете использовать
⚡️, если хотите больше постов про эконометрику

Ссылка на мое исследование🔗

#аналитические_методы #статистика #эконометрика #анализ_данных
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3🤩21😈1
Этот метод pandas я использую каждый день. И вот почему 🟢🟡🔴

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

Речь пойдет про df.style – метод, благодаря которому можно украшать датафреймы и выделять цветами самое важное 🎨

Подробно расскажу про 2 его модификации –
highlight_min/max и background_gradient , а про другие можете прочитать в документации.

highlight_min/max ⚡️

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

Это может быть полезно, например, для:
- поиска лучшей по метрике качества модели, когда мы обучаем много моделей и хотим понять, какая показала лучшее качество
- поиска аномалий во временных рядах (поиске минимума/максимума величины за период)

Пример с временным рядом (фото 1):

import pandas as pd
import numpy as np

dates = pd.date_range('2024-03-01', periods=10, freq='D')
price_data = {
'Дата': dates,
'Цена акции, $': [152.3, 148.7, 155.2, 147.1, 159.8, 145.5, 162.3, 158.9, 144.8, 160.1]
}

df = pd.DataFrame(price_data)

print("Динамика цены акции с выделением экстремумов:")
display(df.style
.highlight_max(subset=['Цена акции, $'], color='lightgreen')
.highlight_min(subset=['Цена акции, $'], color='#ffcccc'))


background_gradient 🚩

Позволяет раскрасить столбцы/строки в палитру, где наименьшие значения будут, например, ярко красными, а наибольшие тёмно-зелёными.

Это может быть полезно, например, для:
- сравнения финансовых показателей компаний при составлении портфеля – визуализация позволяет провести комплексный анализ
- ранжирования моделей по значению метрики качества (удобно определить, например, какой класс моделей демонстрирует лучшее качество на этих данных)

Пример сравнения ML-моделей (фото 2):

from sklearn.metrics import mean_absolute_error, mean_squared_error, mean_absolute_percentage_error
import numpy as np

def calculate_metrics(y_true, y_pred, model_name):

mae = mean_absolute_error(y_true, y_pred)
mse = mean_squared_error(y_true, y_pred)
rmse = np.sqrt(mse)
mape = mean_absolute_percentage_error(y_true, y_pred) * 100

return {
'Модель': model_name,
'MAE': mae,
'MSE': mse,
'RMSE': rmse,
'MAPE': mape,
}

# Пример вычисления метрик для разных моделей
metrics_arima100 = calculate_metrics(y_true, y_pred_arima100, 'ARIMA(1,0,0)')
metrics_arima020 = calculate_metrics(y_true, y_pred_arima020, 'ARIMA(0,2,0)')
metrics_ets = calculate_metrics(y_true, y_pred_ets, 'ETS')

import pandas as pd
metrics_df = pd.DataFrame([metrics_arima100, metrics_arima020, metrics_ets])
metrics_df = metrics_df.set_index('Модель')
print("Метрики качества моделей:")
display(metrics_df.style
.background_gradient(subset=['MAE', 'MSE', 'RMSE', 'MAPE'], cmap='RdYlGn_r'))


Также style можно использовать для покраски текста, форматирования чисел и других крутых визуализаций.


А вы используете данный инструмент? 🤔
❤️ Да, использую и кайфую
🔥 Нет, но теперь буду использовать!

Пишите в комментариях, какая тематика постов вам интересна? 💬

#визуализация_данных #pandas #python
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥93👍31😈1
Штраф за сложность: разбираем Ridge и Lasso на пальцах ⚖️

Сегодня я решил разобрать регуляризацию в контексте линейной регрессии. Если ваша модель идеально предсказывает данные, на которых выучилась, и проваливается на новых — этот пост для вас. Сегодня разбираем, как два вида регуляризации — Ridge и Lasso — помогают бороться с этой проблемой

Зачем нужна регуляризация? 🤔

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

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


Чем отличаются Ridge и Lasso от обычной линейной регрессии? 🧩

Они подразумевают наличие дополнительного штрафа в функции потерь (фото). В случае Lasso, это L1-норма весов (то есть коэффициент регуляризации лямбда, умноженный на сумму модулей весов). В случае Ridge, это L2-норма весов (то есть коэффициент регуляризации лямбда, умноженный на сумму квадратов весов). С помощью этого штрафа как раз и уменьшается подгонка под обучающие данные и, как следствие, переобучение.


Когда использовать Ridge, а когда – Lasso? ⚔️

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


Кейсы из моей практики, когда пригодились Ridge и Lasso 💼

Ridge🏔: В рамках одного из дз по ML я работал с данными о поездках на такси в Нью-Йорке. Таргетом была продолжительность поездок. Действительно информативных признаков было около 15 – это были признаки на основе координат и признаки на основе времени начала/конца поездки. Понять, что эти признаки скорее всего будут информативными, мне помог EDA, который я провел до моделирования. Благодаря Ridge регуляризации модель не переобучилась под какие-то очень информативные признаки и при этом не зануляла никакие веса, как могло бы получиться с Lasso, и качество получилось хорошим.

Lasso🪢: Однажды, перед тем, как обучать бустинговую модель, я отобрал признаки с помощью Lasso-регрессии. Lasso занулил веса перед неинформативными признаками, и я не использовал такие признаки в бустинге. Качество получилось отличным. Для эксперимента я проверил, каким бы было качество без предварительного отбора признаков, и оно оказалось хуже.

💎 Резюмируем
Боитесь переобучения и хотите сделать модель стабильнее — ваш выбор Ridge.
Нужно упростить модель и отобрать самые важные признаки — смело применяйте Lasso.
Регуляризация — это инструмент для создания более надежных и интерпретируемых моделей.

А вы уже используете Ridge или Lasso в своих проектах?

Делитесь опытом в комментариях!💬

Также в процессе подготовки этого поста я нашёл классную статью на Хабре. В ней более подробно описана математическая поднаготная Ridge и Lasso регрессий. Если интересно лучше углубиться – советую прочитать!
Еще есть статья на geeksforgeeks, она более простая для восприятия.

Ставьте
🔥, если хотите больше постов про линейные модели
и ❤️, если пост был для вас полезен

#ml #анализ_данных #регрессия
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥6😍31👍1😈1👨‍💻1
Цифры, из-за которых хочется бросить всё и уехать в Штаты 😮

Недавно я решил сделать последнее ДЗ курса по ML, которое когда-то отложил до лучших времён 🙃🤫

Там было предложено поработать с данными по зарплатам IT-специалистов (ссылка на датасет). Выше можете найти пост про элегантный способ визуализации данных, разобранный на примере данного датасета.

В ходе feature engineering у меня появилась идея рассматривать не отдельные страны, а объединить их в макрорегионы: Северная Америка, Латинская Америка, Западная Европа, Восточная Европа, Азия, Африка и Океания 🌎

Я визуализировал среднюю зарплату по макрорегионам и очень удивился, увидев такую картину (фото 1).
Средняя зарплата в Северной Америке почти в 2 раза выше, чем в Океании, которая находится на 2 месте.

Затем я обучал бустинги и при анализе важности признаков заметил, что для CatBoost флаг работы в Северной Америке с большим отрывом является важнейшим признаком , влияющим на зарплату, (фото 2), что подтверждает устойчивость наблюдаемого явления.

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

При этом присутствует сильный дисбаланс грейдов по макро регионам. В Северной Америке ~74% представителей выборки – сеньоры. В остальном мире доля сеньоров ~30%. Поэтому значительная часть разрыва, продемонстрированного на фото 1, объясняется смещённой структурой IT-сообщества в Северной Америке в сторону старших грейдов. Однако тот факт, что закономерность сохраняется и внутри грейдов, окончательно подтверждает ее устойчивость.

Для себя я выделил 3 главные причины данного явления:

Концентрация капитала💲. В Северной Америке сфокусирована основная доля мирового венчурного капитала, а также базируются крупнейшие технологические компании (FAANG и др.). Такая среда порождает высочайшую конкуренцию за грамотных специалистов и приводит к бусту зарплат.

Культура акций (equity)📈. В Северной Америке, особенно в США, принято оплачивать часть дохода специалистов акциями компании. Это не просто бонус, а существенная часть компенсационного пакета, которая серьёзно влияет на общий доход и мотивацию.

Высокая мобильность специалистов🦘. Частая смена работы за бОльшие деньги — это норма. Компании вынуждены постоянно поднимать зарплаты, чтобы удержать лучших, что в итоге "раздувает" вилки оплаты на рынке.

А какие причины данного явления можете выделить вы?
Пишите в комментариях 💬

Ставьте
🤩 если готовы прямо сейчас бросить всё и ехать в Северную Америку работать
🐳 если хотите больше постов про EDA и поиск инсайтов в данных
👨‍💻 если хотите больше постов про IT-рынок труда

#из_моей_практики #рынок_труда #исследование_зарплат
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻8🐳7🔥41👏1😈1
Мышление как суперсила: мой путь развития 🧠💥


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

На мой взгляд, ум человека можно разделить на 3 составляющие:
знания
кругозор
мышление

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

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

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

В школьные годы процесс развития моего мышления был связан не только с решением математических/логических задач в школе, но и с:

1. Шахматами

Свой путь в этой игре я начал еще в 5 лет, потом в 8 перестал ими заниматься, а в 14 вернулся. Именно шахматам я в большей мере благодарен наличию у меня любви к анализу и прогнозированию наперед.
В дальнейшем это помогло мне как в изучении наук о данных, так и в работе. Например, опыт в просчитывании ходов наперед помогает в планировании работы над проектами, помогает чувствовать, что может пойти не так и на какие этапы стоит заложить больше времени.


2. Просмотром разборов футбольных матчей ⚽️

Каждую неделю я смотрел по несколько разборов матчей из топовых лиг на YouTube, где ведущий разбирал планы команд на матч, структуру игры, перемещения игроков.
Это помогало мне не только лучше играть в футбол, но и развивало навык системного мышления, понимание, как использовать свои сильные и слабые стороны. Эти навыки пригождаются мне постоянно.
Например, при построении дашбордов я стараюсь оценивать продукт со всех сторон и строить визуализации, которые выстраиваются в общую картину и помогают сделать полезные для бизнеса выводы.


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

В следующем посте — главные инструменты развития аналитического мышления. 🔧
Разберем всё: от наук и логики до игр и рабочих задач.


А задумывались ли вы над тем, что сильнее всего повлияло на развитие вашего мышления?
🤔Пишите в комментариях! 💬

Ставьте
❤️, если согласны, что активности из детства являются ключевым фактором в развитии мышления,
🔥, если использовали похожие практики для развития аналитического мышления
и 👀, если ждёте продолжения серии

#жизнь_аналитика
#софт_скиллы
#образование
#аналитическое_мышление
Please open Telegram to view this post
VIEW IN TELEGRAM
👀54🔥3👏1
Pandas: полная roadmap для начинающих 🐼


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

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

Для начала обсудим темы, которые нужно изучить для старта.
В дальнейшем можете проверять свой прогресс по этому списку🔼:

Базовые операции:
• Чтение/загрузка файлов (.xlsx, .csv)
• Выбор нужных столбцов
• Методы информации о датафрейме (.columns, .info(), .isnull().sum())

Анализ данных:
• Анализ столбцов (.unique(), .nunique(), .describe())
• Быстрая визуализация (.hist())
• Фильтрация данных (&, |)
• Сортировка (sort_values())

Продвинутые методы:
• Методы .loc и .iloc
• Merge для соединений таблиц
• Поиск дубликатов (.duplicated())
• Группировка (.groupby() + .agg())


Теперь о ресурсах, с помощью которых это всё можно изучить 📚:

1. Есть отличный туториал на YouTube, где все методы разбираются на примере работы с реальными данными. Если выберете его для изучения, рекомендую параллельно с просмотром самостоятельно выполнять те же действия у себя в Jupyter. Так материал усвоится в разы лучше, чем если просто посмотреть + у вас останется ноутбук, к которому сможете возвращаться, если подзабудете что-то. Он на английском языке. Если для вас лучше на русском, смотрите варианты ниже. 📺

2. Супер плейлист, разбитый по темам. Так же, как и в первом случае, рекомендую параллельно самостоятельно выполнять код. Плейлист очень удобен для точечного изучения тем📌

3. Видео на русском языке 🇷🇺

4. Статья-шпаргалка на Хабре, где разбирается большинство нужных для начала методов. 📰


Рекомендую не пытаться изучить всё сразу. Правильнее всего будет изучить базовые методы, а потом, по мере надобности, гуглить и читать материалы.
💡Формула поиска: «pandas + [что сделать] + [с чем]»

Например, вы встретились с задачей, где нужно заменить конкретные значения столбца, соответствующие условию, конкретными числами.
Заходите в поисковик и набираете: «pandas замена значений в столбце по условию». Сразу же видите статью на geeksforgeeks, где подробно разбирается, как сделать это, так еще и тремя разными способами! 🤩


Если хотите сразу потренироваться, рекомендую вот это ДЗ с майнора ФКН ВШЭ. Оно делается недолго, но будет очень полезно для отработки теории!⚡️

Так же рекомендую сохранить ноутбук-шпаргалку - это сэкономит часы в будущем! 🕰

Пишите в комментариях, какую подборку материалов хотели бы увидеть в следующий раз? 💬

Ставьте ❤️, если было полезно, 🔥, если будете изучать pandas по этому плану
и 👀, если ждёте новые подборки!
Please open Telegram to view this post
VIEW IN TELEGRAM
8👀3👍2🍓2🔥1
100 подписчиков! 🎉
Огромное спасибо каждому, кто читает мой канал! Обещаю много интересных постов и чаще выпускать новый контент🚀
Ваша поддержка очень важна!❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥124