Карьерные треки АИС: готовые маршруты обучения со скидкой 20%
Академия Информационных Систем запустила карьерные треки — курсы сразу объединены под конкретные профессиональные роли.
📖 Сейчас доступны направления:
— разработка на Python;
— DevOps и контейнеры;
— BI и аналитика;
— PostgreSQL и базы данных.
В каждом направлении можно выбрать уровень подготовки: начальный, продвинутый или комплексный. Например, для Python доступны треки от подготовки Python-разработчика данных до продвинутого Python-разработчика с ИИ; в направлении DevOps — обучение работе с Kubernetes и контейнерными платформами, а также трек для DevOps-инженеров инфраструктуры.
При покупке карьерного трека действует скидка до 20%.
Выберите направление и готовый маршрут обучения под профессиональные задачи 🌟
🐼 Знаете ли вы, что value_counts() умеет гораздо больше, чем просто считать значения?
Когда знакомятся с Pandas, value_counts() обычно используют только для того, чтобы узнать, сколько раз встречается каждое значение.
Например:
df["city"].value_counts()
Получаем количество записей для каждого города.
Но многие даже не догадываются, что этим возможности метода не ограничиваются.
Посчитать не количество, а долю
Достаточно добавить один параметр:
df["city"].value_counts(normalize=True)
Теперь вместо количества Pandas вернёт долю каждого значения. Это особенно удобно, когда нужно быстро оценить распределение данных.
Включить пропущенные значения
По умолчанию NaN не учитываются.
Но иногда именно их количество представляет наибольший интерес.
df["city"].value_counts(dropna=False)
Теперь в результат попадут и пропущенные значения.
Отсортировать по алфавиту
Обычно value_counts() сортирует значения по частоте.
Если нужен порядок по самим значениям:
df["city"].value_counts().sort_index()
Где это реально полезно?
value_counts() — один из первых методов, который стоит запускать после загрузки нового датасета.
За несколько секунд можно понять:
- какие категории встречаются чаще всего;
- есть ли редкие значения;
- насколько данные сбалансированы;
- много ли пропусков.
Очень часто именно с этого начинается исследовательский анализ данных (EDA).
💡 Полезный совет
Если вы открыли новый CSV-файл и не знаете, с чего начать анализ, сначала выполните value_counts() для категориальных столбцов.
Иногда уже на этом этапе удаётся обнаружить:
- ошибки в написании категорий;
- лишние пробелы;
- неожиданные значения;
- проблемы с качеством данных.
На практике этот метод используется значительно чаще, чем кажется на первый взгляд.
«МЫ КОМАНДА»: пройдите обучение в 4 квартале 2026 года и получите корпоративную скидку 30%.
Условия акции:
— от 5 сотрудников на одном курсе — скидка 30% каждому участнику;
— от 5 сотрудников на разных курсах — скидка 20% каждому участнику.
Скидка действует на все курсы Академии Информационных Систем, включая программы вендоров.
Можно выбрать одну программу для всей команды или направить сотрудников на разные курсы в зависимости от их профессиональных задач.
Акция действует с 1 октября по 31 декабря 2026 года.
Скидки по акциям не суммируются.
Соберите команду и развивайте компетенции сотрудников на выгодных условиях!
🐼 Одна из самых недооценённых возможностей Pandas – метод query()
Большинство пользователей фильтруют данные так:
result = df[(df["price"] > 1000) & (df["category"] == "Ноутбуки")]
Такой код абсолютно корректен.
Но когда условий становится много, он быстро превращается в длинную конструкцию со скобками, кавычками и логическими операторами.
В Pandas есть более читаемый способ – метод query().
result = df.query("price > 1000 and category == 'Ноутбуки'")
Согласитесь, выглядит гораздо ближе к обычному языку или SQL.
Почему это удобно?
✅ Код проще читать.
✅ Меньше скобок и повторений df["..."].
✅ Легче добавлять новые условия.
Особенно это ощущается, когда фильтрация занимает не одну, а пять-шесть строк.
Когда использовать?
query() отлично подходит для:
- фильтрации таблиц;
- подготовки данных перед визуализацией;
- анализа данных в Jupyter Notebook;
- быстрого исследования датасета.
Есть ли недостатки?
Да.
Если имя столбца содержит пробелы или специальные символы, придётся использовать обратные кавычки:
df.query("`Total Sales` > 1000")
Поэтому лучше сразу давать столбцам простые и понятные имена.
💡 Интересный факт
Многие аналитики, которые хорошо знают SQL, переходят на query() практически сразу. Причина проста – условия начинают выглядеть привычнее, а код становится заметно легче читать.
🐼 Почему merge() – одна из самых важных функций в Pandas
Если спросить аналитиков, какой метод Pandas они используют чаще всего, многие ответят именно merge().
Почему?
Потому что в реальных проектах данные почти никогда не хранятся в одной таблице.
Например:
📋 В одной таблице находятся заказы:
order_id customer_id amount
101 1 1500
102 2 2300
А в другой – информация о клиентах:
customer_id name
1 Иван
2 Анна
По отдельности эти таблицы полезны, но настоящая аналитика начинается только после их объединения.
Что делает merge()?
Он объединяет таблицы по общему ключу.
Например:
orders = orders.merge(
customers,
on="customer_id",
how="left"
)
После этого в таблице заказов появятся имена клиентов.
Но есть одна проблема…
Представьте, что в таблице клиентов случайно оказалось две записи для одного и того же customer_id.
После объединения количество строк внезапно увеличится.
Не потому что Pandas ошибся.
А потому что данные нарушают ожидаемую структуру.
Это одна из самых распространённых причин ошибок в аналитике.
Как защитить себя?
Многие не знают, что у merge() есть параметр validate.
Например:
orders = orders.merge(
customers,
on="customer_id",
how="left",
validate="many_to_one"
)
Теперь Pandas сам проверит, что каждому клиенту соответствует только одна запись.
Если это не так – вы сразу получите ошибку.
Почему это важно?
Иногда отчёт выглядит абсолютно корректно.
Но после объединения:
сумма продаж становится больше;
количество клиентов увеличивается;
показатели перестают совпадать с BI-системой.
Причина может быть всего одна — неправильное объединение таблиц.
💡 Полезный совет
Возьмите за правило:
Если вы уверены в структуре данных — всегда используйте validate.
Это одна небольшая строка кода, которая способна сэкономить часы поиска ошибок.