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

Сводная таблица

Сводная таблица — это инструмент суммирования данных, обычно используемый в программах для работы с электронными таблицами, таких как Microsoft Excel или Google Sheets. Он используется для извлечения и анализа больших объемов данных путем реорганизации и выполнения операций суммирования, таких как агрегирование (например, суммирование, среднее значение, подсчет и т. д.), фильтрация и группировка исходного набора данных.

Сводная таблица состоит из четырех основных частей.

  1. Строки: представляют уникальные значения из выбранного поля в исходном наборе данных.
  2. Столбцы: представляют уникальные значения из другого выбранного поля в исходном наборе данных и обеспечивают дополнительную группировку и категоризацию данных.
  3. Значение: это фактические данные, над которыми должны выполняться операции агрегирования/группировки.
  4. Фильтры: позволяет применять условия фильтрации для ограничения данных, отображаемых в сводной таблице. Этот компонент очень важен, поскольку он позволяет нам выбирать подмножество очень большого набора данных (на основе предоставленных условий) и выполнять простой и быстрый анализ соответствующих данных.

Сводная таблица в пандах

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

Зачем использовать сводные таблицы в пандах?

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

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

Фактически, это очень мощный инструмент для исследования данных, составления отчетов и принятия решений в различных областях, таких как бизнес, финансы, продажи и исследования.

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

Как использовать сводные таблицы в пандах?

синтаксис:-

pandas.pivot_table(data, values=None, index=None, columns=None,
 aggfunc='mean', fill_value=None, margins=False, dropna=True,
 margins_name='All', observed=False, sort=True)

Обычно используемые параметры: -

данные:DataFrame
значения:спискообразные или скалярные, необязательные(столбец или столбцы для агрегирования .)
индекс:столбец, группировщик, массив или список предыдущих
столбцов:столбец , группировщик, массив или список предыдущих
aggfunc:функция, список функций, dict, значение по умолчанию numpy.mean

Приложение:-

>>> df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo",
...                          "bar", "bar", "bar", "bar"],
...                    "B": ["one", "one", "one", "two", "two",
...                          "one", "one", "two", "two"],
...                    "C": ["small", "large", "large", "small",
...                          "small", "large", "small", "small",
...                          "large"],
...                    "D": [1, 2, 2, 3, 3, 4, 5, 6, 7],
...                    "E": [2, 4, 5, 5, 6, 6, 8, 9, 9]})
>>> df
     A    B      C  D  E
0  foo  one  small  1  2
1  foo  one  large  2  4
2  foo  one  large  2  5
3  foo  two  small  3  5
4  foo  two  small  3  6
5  bar  one  large  4  6
6  bar  one  small  5  8
7  bar  two  small  6  9
8  bar  two  large  7  9
>>> table = pd.pivot_table(df, values='D', index=['A', 'B'],
...                        columns=['C'], aggfunc=np.sum)
>>> table
C        large  small
A   B
bar one    4.0    5.0
    two    7.0    6.0
foo one    4.0    1.0
    two    NaN    6.0

Для получения подробной информации об использовании вы можете проверить:
https://pandas.pydata.org/docs/reference/api/pandas.pivot_table.html

Примечание для кагглеров

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