Прежде чем изучать сводные таблицы в пандах, важно понять, что такое сводная таблица и как мы можем использовать ее в наших проектах по обработке и анализу данных.
Сводная таблица
Сводная таблица — это инструмент суммирования данных, обычно используемый в программах для работы с электронными таблицами, таких как Microsoft Excel или Google Sheets. Он используется для извлечения и анализа больших объемов данных путем реорганизации и выполнения операций суммирования, таких как агрегирование (например, суммирование, среднее значение, подсчет и т. д.), фильтрация и группировка исходного набора данных.
Сводная таблица состоит из четырех основных частей.
- Строки: представляют уникальные значения из выбранного поля в исходном наборе данных.
- Столбцы: представляют уникальные значения из другого выбранного поля в исходном наборе данных и обеспечивают дополнительную группировку и категоризацию данных.
- Значение: это фактические данные, над которыми должны выполняться операции агрегирования/группировки.
- Фильтры: позволяет применять условия фильтрации для ограничения данных, отображаемых в сводной таблице. Этот компонент очень важен, поскольку он позволяет нам выбирать подмножество очень большого набора данных (на основе предоставленных условий) и выполнять простой и быстрый анализ соответствующих данных.
Сводная таблица в пандах
Давайте начнем с обсуждения того, почему нам действительно нужно использовать сводную таблицу при работе с пандами, когда нам нужно ее использовать, а затем перейдем к самому важному разделу этого блога, т. е. как использовать сводные таблицы в панды.
Зачем использовать сводные таблицы в пандах?
При работе с большим набором данных выполнение задач 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 предоставляет ограниченный набор данных для более удобного применения, вы, возможно, никогда не чувствовали необходимости использовать какой-либо инструмент суммирования данных, но это очень важно для проектов отраслевого уровня, где у вас могут быть триллионы точек данных.