Datalytics
9.07K subscribers
218 photos
17 videos
5 files
673 links
Канал для аналитиков данных про Python, карьерное развитие в анализе данных, всякое разное

Автор – @ax_makarov

Отдельный канал про ChatGPT и его практическое применение —  @ai_forge

Чат канала — @pydata_chat

Вакансии — @data_hr
Download Telegram
Forwarded from Этюды для программистов на Python (Дима Федоров)
Перевод статьи Криса Моффитта о сводных таблицах (pivot_table) в pandas 🥳🐍 http://dfedorov.spb.ru/pandas/%D0%A1%D0%B2%D0%BE%D0%B4%D0%BD%D0%B0%D1%8F%20%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0%20%D0%B2%20pandas.html
Начал собирать список вредных советов при написании pandas-кода. Вот что делать НЕ стоит:

- Выводить датафрейм через функцию print() вместо display()
- Использовать built-in функции Python вместо методов pandas (например, sum(df['column']) вместо df['column'].sum())
- Использовать параметр inplace при вызове методов
- Удалять колонки через del
- Изменять названия колонок через атрибут columns или метод set_axis()
- Вызывать колонки через attribute-like запись (df.genre) вместо dict-like записи (df['genre'])
- Делать однотипные операции с колонками не через цикл, а каждую на своей строке
- Использовать пробелы, кириллицу и спецсимволы (напр. '$') в названиях колонок
- Проходится циклом по строкам датафрейма
- Использовать метод merge() без параметров how и on
- Это вкусовщина: использовать вызов методов из библиотеки, а не из инстанса DataFrame (например, pd.pivot_table() вместо df.pivot_table())
- Тоже вкусовщина: делать поочередные манипуляции с одной и той же колонкой на отдельных строках (например, вместо df['column'].fillna(0).astype(int) сделать на отдельных строках .fillna(0) и .astype(int)
- Часто использовать абсолютную индексацию (например, iloc или выбирать колонки с помощью slice)
- Использовать вызов методов внутри query() (например, df.query('value.notna()'))
- Использовать notnull() и isnull() вместо notna() и isna() (для соблюдения читаемости, учитывая, что существуют методы drop_na() и fillna())
- Всегда оставлять MultiIndex (даже если он в колонках и в строках одновременно)
- Использовать pivot_table() там где можно обойтись groupby()

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

А какие вы посоветуете вредные советы? 😉
Forwarded from Этюды для программистов на Python (Дима Федоров)
🔥 Завершил перевод "Подробного руководства по группировке и агрегированию с помощью pandas" от Криса Моффитта (по ссылке Блокнот и Colab): https://vk.cc/bJOuIc

Все переводы доступны на странице: http://dfedorov.spb.ru/pandas/
Forwarded from Этюды для программистов на Python (Дима Федоров)
Перевел две интересные статьи! 🥳

👉 Обзор типов данных pandas (по ссылке Блокнот и Colab): https://vk.cc/bVq3KU
👉 Очистка данных о валюте с помощью pandas (по ссылке Блокнот и Colab): https://vk.cc/bVq3Ua

Все переводы доступны на странице 🐍 http://dfedorov.spb.ru/pandas/
This media is not supported in your browser
VIEW IN TELEGRAM
А что, если вы не просто умеете стучать по клавиатуре? 😉 Что, если вы понимаете основы баз данных, составления SQL-запросов и умеете разрабатывать ПО? IT-команда Совкомбанка, одного из самых технологичных банков России, если кто вдруг не знал, ищет системного аналитика на проект OpenApi. В команде знают и любят Agile, помогают коллегам развиваться и платят приличные деньги. Никаких дресс-кодов, гибкий график, расширенный ДМС и адекватные тимлиды прилагаются. Локация для вакансии — Саратов. Узнать больше можно здесь: https://bit.ly/3lUeL5p
Эмели Драль и Лена Самуйлова опубликовали на Github легковесную библиотеку для генерации интерактивных отчетов по анализу датасетов для ML моделей. Это полноценный MVP, который сегодня умеет оценивать только Data Drift, а совсем скоро научится делать ещё массу всего полезного, например, ассеcсмент ML модели, а дальше полноценный мониторинг

https://evidentlyai.com/blog/evidently-001-open-source-tool-to-analyze-data-drift

Ссылка на github
Хорошее русскоязычное руководство по Matplotlib. Отдельно стоит отметить, что это не просто сборник готовых рецептов по построению стандартных диаграмм, а качественный образовательный материал, объясняющий простым языком принципы построения самых разнообразных диаграмм (в том числе комбинированных, например, scatterplot + line plot). Большое внимание уделяется компонентам фигуры (см. Anatomy of a figure), что позволяет гибко настраивать внешний вид визуализации под свои нужды

Когда я только знакомился с анализом данных на Python, то matplotlib я не любил из-за постоянно возникающего ощущения, что для создания хорошей визуализации нужно много танцев с бубном, но по-тихоньку моё отношение к нему менялось. На мой взгляд, обманчивая сложность освоения в первую очередь связана с тем, что самый распространенный способ создания визуализаций в matplotlib — это pyplot API, которое базируется на состояниях (state-based API), а после объектно-ориентированного подхода это немного дезориентирует. Вот хороший ответ на stackoverflow, объясняющий принцип состояний в matplotlib

Итого: секрет успешного освоения matplotlib — понимание компонентов фигуры + принципа state-based API. Зная компоненты становится яснее какие компоненты нужно изменять, а умея работать с состояниями — изменять эти компоненты

https://pyprog.pro/mpl/mpl_short_guide.html
Forwarded from oleg_log (Oleg Kovalov)
# lang: python
def is_unique(l):
return len(set(l)) == len(l)
Google создали рейтинг критически важных open-source проектов. В расчёте метрики критичности участвует много разных показателей, свидетельствующих о влиянии и значимости проекта, например, количество контрибьютров и частота коммитов на Github. Отдельного внимания заслуживает документ, рассказывающий о методологии расчёта. На мой взгляд, это интересный пример расчёта аналитической метрики, позволяющей ранжировать данные, опираясь на независимые показатели

На основе данных, представленных Google, оказывается, что наиболее критичный open-source проект среди всех — это Node.js. А среди проектов, написанных на Python — Ansible. Ну и замечу, что всеми нами любимый Pandas находится на 4 строчке среди Python-проектов и на 19 месте среди всех проектов

На картинке топ-10 Python-проектов. А ещё можете сами поковырять файлик, в который сведены данные по ссылке выше: 6 списков по 6 языкам (C, C++, Java, JS, Python, Rust)
Forwarded from addmeto (Grigory Bakunov)
Пятничное: ребята из ClickHouse загрузили в базу кучу статистики про GitHub и сделали кучу готовых запросов, очень много рассказывающих про культуру и опенсорс вцелом. Если вас интересует эта тема - обязательно посмотрите, много неожиданных открытий. Например теперь понятно, какая компания делает самый популярный опенсорс. Или какой контент на гитхабе самый популярный вообще https://gh.clickhouse.tech/explorer/
Для отслеживания самых заметных мероприятий посвященных Big Data, Machine Learning, Data Science, Data Engineering, BI/DWH и другим направлениям, связанным с обработкой данных, рекомендую подписаться на канал "Data online events & Moscow meetups"

Предложить свой ивент можно, написав @NikolayKrupiy, @Ajvol

👉🏻 Подписаться на t.me/data_events
Статья, в которой приводится несколько простых советов о том как организовывать эффективные и надежные пайплайны обработки данных. Если вкратце, то вот они:
- Разделяйте пайплайн на изолированные и тестируемые маленькие шаги;
- Старайтесь делать шаги атомарными (обработка данных как атомарные транзакции)
- Запущенный этап ETL должен при повторном запуске выдавать тот же результат на идентичных входных данных (правило идемпотентности)
- Избыточность (храните raw-data так долго как это представляется возможным)

https://habr.com/en/company/badoo/blog/531912/
Forwarded from Этюды для программистов на Python (Дима Федоров)
У меня две новости и обе хорошие 🥳

1) Добавил несколько кейсов и упражнений по Pandas и NumPy (можно прокачать скиллы по анализу товаров): https://dfedorov.spb.ru/pandas/

2) Завершил перевод статьи "Типичные задачи Excel, продемонстрированные в pandas": https://dfedorov.spb.ru/pandas/%D0%A2%D0%B8%D0%BF%D0%B8%D1%87%D0%BD%D1%8B%D0%B5%20%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8%20Excel,%20%D0%BF%D1%80%D0%BE%D0%B4%D0%B5%D0%BC%D0%BE%D0%BD%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%B2%20pandas.html
Forwarded from LEFT JOIN
В рекламном кабинете ВКонтакте при публикации объявления есть функция автоматического подбора целевой аудитории, но можно пойти и другим путём –– загрузить файл с идентификаторами конкретных людей, которым нужно показать рекламу. В новом материале рассказываем, как написать парсер участников сообществ конкурентов для VK API и загрузить полученную аудиторию в рекламный кабинет.

Мы попробовали запускать объявления обоими способами: бонусом в конце материала сравниваем результаты и отвечаем на вопрос, какой метод подбора аудитории оказался выгоднее.
Forwarded from Я у мамы аналитик (Stas Valuev)
Пропусти я такую новость - плакал бы потом горькими слезами.

Ребятки запилили Jupiter Notebook в Excel'ке. Действительно, зачем выбирать между Python и аналитикой в уютных таблицах (не будем никому рассказывать, что есть еще BI), давайте "замочим" VBA и совместим все в один инструмент (а что, а вдруг).

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

🔗 Ссылка
Зарелизился JupyterLab 3.0. Из нового: встроенный визуальный дебаггер, виджет для навигации по блокноту (table of contents), улучшенная адаптивная верстка, установка расширений в Jupyter без ребилда. Полный changelog тут

https://blog.jupyter.org/jupyterlab-3-0-is-out-4f58385e25bb
Forwarded from Этюды для программистов на Python (Дима Федоров)
Подготовил перевод двух интересных статей для любителей покопаться в pandas 🐼

👉 Объяснение кросс-таблицы (crosstab) в Pandas

👉 Разделение (биннинг, дискретизация, балансировка) данных с помощью qcut и cut в Pandas
Ребята из EXPF подготовили отличный перевод статьи про методику проведения экспериментов Switchback. Эта техника тестирования полезна в условиях сильного влияния наблюдений (например, таксистов, курьеров или потребителей) друг на друга — эту проблему еще называют как “социальный эффект” или Network Effect.

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

Switchback-тестирование. Как бороться с социальными эффектами в A/B-тестах

16 марта у EXPF стартует интенсив «Математическая статистика и A/B-тесты», где будут на практике рассмотрены основные методологические и математические проблемы A/B тестирования. Этот интенсив будет полезен всем, кто хочет начать разбираться в теме и начать проводить A/B тесты так, чтобы их результатам можно было доверять.
Forwarded from Этюды для программистов на Python (Дима Федоров)
По многочисленным просьбам подготовил переводы про визуализацию и обработку данных для ML 🐍

👉 Эффективное использование Matplotlib

👉 Руководство по кодированию категориальных значений в Python

Приятного чтения! 🐼

PS. остальные переводы и кейсы по ссылке ⚡️