Так естественно использовать сводные таблицы в Excel. Давайте сделаем то же самое с Pandas, ответив на три бизнес-вопроса.

В Excel я создал бесчисленное количество сводных таблиц. Это один из моих любимых инструментов для быстрого анализа набора данных.

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

Как мы можем сделать то же самое в Pandas?

Давайте потренируемся, ответив на три конкретных вопроса об этом наборе данных.

1. Набор данных

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

Давайте создадим сводную таблицу с этим набором данных, как мы это сделали бы в Excel.

2. Как сделать базовую сводную таблицу

Метод .pivot_table используется для создания сводных таблиц в Pandas.

Давайте начнем делать простую сводную таблицу с индексом по странам:

Мы легко получаем сводную таблицу. По умолчанию он выполняет функцию агрегирования 'mean' для всех доступных числовых столбцов.

3. Первый бизнес-вопрос: сосредоточиться на столбце и агрегации

Нам задают следующий вопрос:

«Каков средний доход по стране для каждой категории продуктов?»

Как бы мы организовали сводную таблицу?

Мы помещаем страну в индекс, категорию продукта в виде столбца, а затем вычисляем среднее значение дохода. Давайте сделаем это:

Метод .pivot_table позволяет выбрать столбцы для индекса и столбцы для аргумента column. Аргумент aggfunc позволяет нам выбрать желаемую агрегацию.

И вот что мы получили:

3. Второй бизнес-вопрос: используйте множественные агрегации

Вот:

«Каковы минимальные и максимальные доходы каждой страны по категориям продуктов?»

Это прекрасная возможность попрактиковаться в множественных агрегациях. Поскольку нам нужно показать максимум и минимум, мы можем указать оба в списке в аргументе aggfunc:

4. Третий бизнес-вопрос: используйте пользовательскую функцию

Вот:

«Каков процент велосипедов по странам в товарной категории?»

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

Давайте запишем это:

Эта функция помогает нам рассчитать процент велосипедов в столбце категории продукта. Теперь давайте применим это:

5. Другие полезные советы

Как и в Excel, вы можете добавить итоговую строку и столбец, используя аргумент margins со значением True.

Чтобы заполнить отсутствующие значения, вы можете использовать аргумент fill_value и указать нужное значение.

Затем воспользуемся fill_value=’0’.

6. Заключение

Сводные таблицы просты в использовании с Pandas. Для пользователей Excel более естественно использовать их, а не groupby или pd.crosstab. Каждый из них имеет свой набор преимуществ и недостатков. Я рекомендую вам потренироваться на разных наборах данных.

Надеюсь, вам понравилось читать этот пост! Следуйте за мной на Medium для будущих сообщений. Это мотивирует меня продолжать.

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



Использованная литература:

pandas.pivot_table — документация pandas 1.4.3 (pydata.org)

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.