Задачи на groupby, agg и merge в pandas
Эта подборка помогает строить отчёты в pandas: менять уровень детализации через groupby, добавлять групповые признаки через transform и соединять таблицы через merge без неожиданных потерь и дублей.
Что означает одна строка
До группировки строка может означать покупку, после неё — клиента. Если соединить две таблицы с повторяющимся ключом, строк станет больше: получится сочетание совпадений. Сначала назовите ключ каждой таблицы, затем выбирайте агрегат и тип соединения.
Пример: сводка и справочник
import pandas as pd
orders = pd.DataFrame({"client": [1, 1, 2], "amount": [10, 20, 7]})
clients = pd.DataFrame({"client": [1, 2, 3], "name": ["A", "B", "C"]})
totals = orders.groupby("client", as_index=False).agg(total=("amount", "sum"))
report = clients.merge(totals, on="client", how="left",
validate="one_to_one", indicator=True)
print(report["_merge"].tolist())
print(float(report.loc[report["client"] == 1, "total"].iloc[0]))
Результат:
['both', 'both', 'left_only']
30.0
left сохранил всех клиентов, включая клиента без покупок. validate проверил уникальность ключей, а indicator показал отсутствие пары. Не заменяйте пропущенную сумму нулём, пока не определили смысл отсутствия данных.
Разделите навыки
- groupby по двум ключам и именованные агрегаты.
- transform: признак для каждой исходной строки.
- outer/right join и поиск несовпавших ключей.
- Сводная таблица с явным aggfunc.
Проблемные ключи сначала обработайте в практике очистки данных. Объединение таблиц в документации pandas. Для последовательного обучения — бесплатный курс NumPy и pandas.
- pandas groupby и agg: группировка по двум столбцам
Группировка pandas по нескольким столбцам: именованные агрегаты, сумма, среднее и ключи в обычных столбцах. Пример и задача с проверкой кода.
NumPy и pandas: практический тренажёр - pandas groupby и agg: именованные агрегаты и сортировка
Как посчитать сумму и среднее по группам pandas, задать имена столбцов и отсортировать итог? Пример и задача с проверкой.
NumPy и pandas: практический тренажёр - groupby и agg: сводные показатели с явными именами агрегатов — задача по NumPy и pandas
Практическая задача по теме «groupby и agg: сводные показатели с явными именами агрегатов» с проверкой ответа онлайн.
NumPy и pandas: практический тренажёр - pandas groupby transform: среднее группы для каждой строки
Чем groupby transform отличается от agg? Пример среднего по группе без потери строк и задача pandas с проверкой кода.
NumPy и pandas: практический тренажёр - pandas transform count: фильтрация групп по числу строк
Посчитайте размер каждой группы через groupby.transform('count') и отберите отделы с нужным числом сотрудников.
NumPy и pandas: практический тренажёр - pandas merge(how='left'): что будет без совпадения ключа
Что появится в столбце правой таблицы после left join, если ключ не найден? Проверьте понимание pd.merge на короткой задаче.
NumPy и pandas: практический тренажёр - pandas merge: validate, suffixes и MergeError — задача
Зачем нужны validate и suffixes в pandas merge? Пример проверки ключей и задача на соединение таблиц с бесплатной проверкой кода.
NumPy и pandas: практический тренажёр - pandas merge indicator: outer join и несовпавшие ключи
Как найти строки без пары через merge indicator=True? Пример outer join, диагностика несовпавших ключей и задача pandas с проверкой кода.
NumPy и pandas: практический тренажёр - Сводная таблица pandas: агрегаты, суммы и пустые ячейки
Как построить сводную таблицу pandas, суммировать повторные пары ключей и заполнить пустые ячейки? Пример и задача с проверкой.
NumPy и pandas: практический тренажёр - pandas explode и groupby: подсчёт тегов товаров
Разверните списки тегов через explode и посчитайте частоты тегов с groupby. Задача на преобразование DataFrame.
NumPy и pandas: практический тренажёр - Отчёт в pandas: groupby, agg и merge со справочником
Как сгруппировать данные и присоединить справочник pandas. Пример именованной агрегации и merge с validate, затем задача с проверкой кода.
NumPy и pandas: практический тренажёр - pandas merge и дубли ключей: диагностика зерна данных
Сравните метрику до и после one-to-many join, найдите дубли в таблице-измерении и проверьте зерно данных в pandas.
NumPy и pandas: практический тренажёр
