Добавить в корзинуПозвонить
Найти в Дзене

10 функций Pandas, которые я использую каждый день

Всем привет! Я — практикующий исследователь данных, и на этом канале делюсь тем, что реально работает в IT. Никакой сухой теории, только личный опыт, рабочие инструменты и грабли, на которые я уже наступил за вас. Рад, что вы здесь! Если вы работаете с данными, то наверняка сталкивались с тем, что информации слишком много, она в разной форме и с ней нужно что-то делать быстро. Я ежедневно использую Pandas для анализа, трансформации и подготовки данных, и за годы работы выделил функции и приёмы, без которых моя жизнь аналитика была бы куда сложнее. В этой статье я делюсь 10 функциями и методами Pandas, которые помогают мне каждый день. Примеры будут максимально практичные и понятные. *очень тяжело выделить 10 топ функций, как оказалось (так как их реально много). Но думаю больше 10 расписывать в одной статье будет многовато, думаю сделаю еще вторую часть, если будет полезно кому-то. Конечно, базовые функции чтения данных — это первое, что нужно освоить. Но есть нюансы: import pandas as
Оглавление

Всем привет! Я — практикующий исследователь данных, и на этом канале делюсь тем, что реально работает в IT. Никакой сухой теории, только личный опыт, рабочие инструменты и грабли, на которые я уже наступил за вас. Рад, что вы здесь!

Если вы работаете с данными, то наверняка сталкивались с тем, что информации слишком много, она в разной форме и с ней нужно что-то делать быстро. Я ежедневно использую Pandas для анализа, трансформации и подготовки данных, и за годы работы выделил функции и приёмы, без которых моя жизнь аналитика была бы куда сложнее.

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

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

Сгенерированная в Шедевруме картинка
Сгенерированная в Шедевруме картинка

1. read_excel и read_csv — быстрый старт

Конечно, базовые функции чтения данных — это первое, что нужно освоить. Но есть нюансы:

import pandas as pd

# Читаем Excel с конкретным листом
df = pd.read_excel('sales.xlsx', sheet_name='Февраль')

# Читаем CSV с кодировкой и нужными колонками
df = pd.read_csv('sales.csv', usecols=['SKU', 'Цена', 'Количество'], encoding='utf-8')
  • pd.read_excel() и pd.read_csv() — базовые функции для загрузки данных в Pandas.
  • sheet_name='Февраль' — выбирает конкретный лист Excel.
  • usecols позволяет загрузить только нужные столбцы, что экономит память.
  • encoding='utf-8' задает кодировку файла, полезно для корректного чтения русских символов.

Совет: всегда указывайте usecols, чтобы не тянуть лишние данные и не перегружать память (во всяком случае мне это очень помогает выбирать только нужно из маркетинговых отчетов с 40+ столбцами).

2. info() и describe() — быстрый обзор данных

Когда открываешь новый файл, первое, что я делаю:

df.info() # типы данных, пропуски
df.describe() # базовая статистика по числовым колонкам

С помощью этого легко понять, где есть пропуски, какие колонки числовые, а какие — текстовые, и с чего начать очистку.

3. apply() — мощь кастомных функций

Одна из самых гибких функций. Можно применить любую функцию к колонке:

# Допустим, хотим преобразовать цену в доллары
df['Цена_USD'] = df['Цена'].apply(lambda x: x / 75)

# Или сложная функция
def classify_qty(qty):
if qty < 10:
return 'Мало'
elif qty < 50:
return 'Средне'
else:
return 'Много'

df['Категория_количества'] = df['Количество'].apply(classify_qty)

apply незаменим, когда стандартные методы Pandas не подходят.

4. Распаковка JSON в столбцах

Иногда данные приходят как вложенный JSON в одной колонке. Pandas умеет их распаковывать:

import json

# Пример: колонка 'details' содержит JSON
df['details'] = df['details'].apply(json.loads)

# Превращаем JSON в отдельные колонки
details_df = pd.json_normalize(df['details'])
df = pd.concat([df.drop('details', axis=1), details_df], axis=1)
  • json.loads() преобразует строку JSON в словарь Python.
  • pd.json_normalize() превращает вложенный JSON в отдельные колонки.
  • pd.concat(..., axis=1) объединяет исходную таблицу с распакованными колонками.

После этого можно работать с вложенными полями как с обычными колонками. Просто кайф!

5. merge() — объединение таблиц

Часто приходится соединять данные из разных источников:

df_sales = pd.read_csv('sales.csv')
df_products = pd.read_csv('products.csv')

df_merged = df_sales.merge(df_products, on='SKU', how='left')

Совет: используйте how='left' для сохранения основной таблицы и добавления информации. Смысл такой же как и LEFT JOIN в SQL.

6. groupby() — агрегируем с умом

Для аналитика это must-have:

# Считаем суммарную выручку по каждому SKU
df_grouped = df.groupby('SKU')['Выручка'].sum().reset_index()

# Несколько агрегатных функций сразу
df_grouped = df.groupby('Категория')['Количество'].agg(['sum', 'mean', 'max']).reset_index()
  • groupby() объединяет данные по категориям.
  • Можно агрегировать с помощью sum, mean, max или нескольких функций сразу через agg().
  • reset_index() возвращает результат в привычный DataFrame.

С помощью groupby можно быстро получить статистику по любым срезам.

7. pivot_table() — сводные таблицы

Иногда нужен отчет в формате Excel-сводки прямо в Pandas:

pivot = pd.pivot_table(
df,
values='Выручка',
index='Регион',
columns='Месяц',
aggfunc='sum',
fill_value=0
)
  • values — числовые значения для агрегирования.
  • index — строки, columns — столбцы.
  • aggfunc='sum' — суммируем данные.
  • fill_value=0 — заменяем пропуски на 0.

Так удобно строить отчёты по месяцам, категориям и филиалам.

8. sort_values() и rank() — сортируем и ранжируем

Часто нужно найти топовые продукты или клиентов:

# Сортировка по выручке
df_top = df.sort_values('Выручка', ascending=False).head(10)

# Ранжирование внутри группы
df['Ранг'] = df.groupby('Регион')['Выручка'].rank(method='dense', ascending=False)
  • sort_values() сортирует DataFrame по выбранной колонке.
  • head(10) берет топ-10 значений.
  • rank() присваивает ранги внутри групп (например, по региону).
  • method='dense' — ранжирование без пропусков в числах.

9. fillna() и dropna() — работа с пропусками

Пропуски бывают всегда, и с ними нужно уметь работать:

# Заполняем пропуски средним значением
df['Цена'] = df['Цена'].fillna(df['Цена'].mean())

# Убираем строки, где нет SKU
df = df.dropna(subset=['SKU'])
  • fillna() заполняет пропуски, например средним значением.
  • dropna() удаляет строки с пропусками в конкретных колонках.

10. str методы — работа с текстом

Для аналитика данные часто в текстовом виде, и Pandas умеет их обрабатывать:

# Приведение к нижнему регистру
df['Название'] = df['Название'].str.lower()

# Проверка на наличие слова
df['Есть_акция'] = df['Название'].str.contains('акция')

# Разделение текста
df[['Бренд', 'Модель']] = df['Название'].str.split(' ', 1, expand=True)
  • str.lower() — приводит текст к нижнему регистру.
  • str.contains() — проверяет наличие слова или шаблона.
  • str.split() с expand=True превращает текст в несколько колонок.

Итог

Эти 10 функций — мой ежедневный набор (точнее уверенный ежедневный костяк) для работы с данными. Они позволяют:

  • Быстро загружать и смотреть данные
  • Преобразовывать, очищать и объединять таблицы
  • Работать с JSON и текстом
  • Агрегировать и строить отчёты

Если освоить их, можно решать достаточно большой объем задач аналитика данных без лишних библиотек. Продолжение следует...

Я не претендую на последнюю инстанцию, я пишу о своём пути и опыте. Спасибо что дочитали до конца. Подпишитесь👇👇👇, ставьте лайки 👍🏽👍🏽👍🏽 впереди много интересных статей про навыки, инструменты, обучение, лайфхаки и пути аналитика.