Рубрики
Без рубрики

Сводные таблицы Панд в Python – Простое руководство

В этой статье мы поговорим о сводных таблицах в Python. Мы реализуем то же самое с помощью функции pivot_table в модуле Pandas.

Автор оригинала: Pankaj Kumar.

В этой статье мы поговорим о сводных таблицах в Python. Мы реализуем то же самое с помощью функции pivot_table в модуле Pandas .

Что такое Сводная таблица?

Сводные таблицы являются ключевой особенностью Microsoft Excel и одной из причин, по которой Excel стал таким популярным в корпоративном мире.

Сводные таблицы обеспечивают большую гибкость для выполнения анализа данных.

Это позволяет нам преобразовывать столбцы в строки, а строки в столбцы. Поскольку он позволяет группировать по любому параметру, его можно легко спутать с функцией pandas Groupby .

Подумайте о сводных таблицах как о многомерной версии функции GroupBy .

Шаги по реализации сводных таблиц в Python

Давайте сразу перейдем к реализации сводных таблиц в Python.

1. Загрузите набор данных по вашему выбору

Мы будем анализировать покемонов с помощью набора данных статистики (загруженного из Kaggle). Вы можете получить набор данных здесь .

И на случай, если вам интересно Что такое покемоны? для ясности вы можете проверить эту ссылку .

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

Нужно поймать их всех.… 🙂

import pandas as pd

#importing the dataset
data = pd.read_csv('Pokemon.csv')
data.head()
Набор данных

2. Синтаксис метода pivot_table()

DataFrame.pivot_table(data, values=None, index=None,columns=None, aggfunc='mean')

После вызова метода pivot_table в фрейме данных давайте разберем основные входные аргументы , данные методу.

  • data – это числовой столбец, к которому мы применяем функцию агрегации. например, продажи, скорость, цена и т. Д.
  • index – Столбцы, которые мы хотим преобразовать в строки. мы можем передать несколько значений в виде списка.
  • columns – Переменные столбца, которые мы теперь хотим сохранить как столбец.
  • aggfunc – тип операции, выполняемой с данными, т. е. сумма, среднее значение, количество и т. Д.

Это будет намного яснее на примере.

3. Реализация сводных таблиц в Python

Допустим, нам нужно найти среднюю скорость покемонов, принадлежащих к типу 1.

Это можно легко сделать с помощью pandas Groupby , но тот же результат можно легко получить с помощью pivot_table с гораздо более чистым кодом.

С каждым примером мы будем медленно исследовать pivot_table во всей его красе.

df.groupby(['Type 1'])[['Speed']].mean()

Аналогичный результат с использованием pivot_table

df.pivot_table('Speed' , index = ['Type 1'], aggfunc = 'mean')
Результат С Группой по И Сводной Таблицей

4. Найдите среднюю скорость с помощью сводных таблиц

Но теперь, если бы нас попросили найти среднюю скорость каждого покемона типа 1, а также разделить их на легендарных и Не Легендарных.

df.pivot_table('Speed' , index = ['Type 1'] , columns= ['Legendary'] , aggfunc = 'mean')
Средняя Скорость Легендарный Против Не Легендарного Покемона

Тада! С помощью одной строки кода мы смогли добиться желаемых результатов.

Я не мог не заметить, что в среднем Легендарные Покемоны были быстрее, чем нелегендарные. Магия сводных таблиц.

Здесь важно понять, что нам нужен столбец типа 1 в качестве индекса, поэтому мы передали его в аргумент индекса в методе pivot_table.

Но теперь, поскольку каждый покемон типа 1 принадлежал либо к Легендарной категории, либо к Не Легендарной, мы просто преобразовали наш фрейм данных таким образом, чтобы он теперь показывал среднюю скорость каждого типа.

Теперь у нас есть легендарные или не легендарные функции в наших данных.

Поскольку нам нужна была “Легендарная” функция в наших данных в качестве столбца новых данных, нам просто нужно было передать ее в параметре columns . Давайте немного изменим наш набор данных и проведем новый анализ.

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

df['speed_range'] = pd.cut(df['Speed'] , [0,40,60,80,120] , include_lowest=True)

Теперь давайте выведем фрейм данных, который показывает среднюю скорость на основе легендарной функции и функции диапазона скоростей.

df.pivot_table('Speed' , index = ['Type 1'] , columns= ['speed_range','Legendary'] , aggfunc = 'mean')
Легендарный, А Также Диапазон Скорости, Как Колонны

Я призываю вас попробовать pandas pivot_table на наборе данных Titanic, поскольку это дополнит вашу практику в этой теме.

Сводные таблицы в Python-непростая тема для освоения, но, учитывая преимущества, которые она может предложить, необходимо обязательно включить эти знания в свой инструментарий анализа. Помните, что практика-это ключ здесь!

Вывод

в этой статье мы попытались получить некоторое представление о Pandas pivot_table , реализовав его на наборе данных. Мы поняли, что это многомерная версия операции groupby (концептуально говоря). Счастливого Обучения!