pandas.pivot_table
- pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', observed=<no_default>, sort=True)[исходный код]
-
Создает сводную таблицу в стиле электронной таблицы в виде DataFrame.
Уровни сводной таблицы хранятся в объектах MultiIndex (иерархических индексах) в индексе и столбцах результирующего DataFrame.
- Параметры:
-
- data:DataFrame
- values:подобный списку объект или скаляр, необязательно
-
Столбец или столбцы для агрегирования.
- index:столбец, Grouper, массив или список перечисленных выше объектов
-
Ключи для группировки по индексу сводной таблицы. Если передан список, он может содержать любые другие типы (кроме списка). Если передан массив, его длина должна совпадать с длиной данных; он будет использоваться так же, как и значения столбцов.
- columns:столбец, Grouper, массив или список перечисленных выше объектов
-
Ключи для группировки по столбцам сводной таблицы. Если передан список, он может содержать любые другие типы (кроме списка). Если передан массив, его длина должна совпадать с длиной данных; он будет использоваться так же, как и значения столбцов.
- aggfunc:функция, список функций, словарь, по умолчанию «mean»
-
Если передан список функций, результирующая сводная таблица будет содержать иерархические столбцы, верхний уровень которых составляют имена функций (определяемые по самим объектам функций). Если передан словарь, его ключом является столбец для агрегирования, а значением — функция или список функций. Если
margin=True, aggfunc будет использоваться для вычисления частичных агрегатов. - fill_value:скаляр, по умолчанию None
-
Значение, которым заменяются пропущенные значения (в результирующей сводной таблице после агрегирования).
- margins:bool, по умолчанию False
-
Если
margins=True, будут добавлены специальные столбцы и строкиAllс частичными итогами групп по категориям строк и столбцов. - dropna:bool, по умолчанию True
-
Не включать столбцы, все значения которых равны NaN. Если True, строки со значением NaN в любом столбце будут исключены перед вычислением итогов.
- margins_name:str, по умолчанию ‘All’
-
Имя строки или столбца, в котором будут содержаться итоги, если margins равно True.
- observed:bool, по умолчанию False
-
Применяется, только если хотя бы один из объектов группировки имеет тип Categorical. Если True: отображаются только наблюдаемые значения для объектов группировки категориального типа. Если False: отображаются все значения для объектов группировки категориального типа.
Устарело начиная с версии 2.2.0: Значение по умолчанию
Falseустарело и в будущей версии pandas будет изменено наTrue. - sort:bool, по умолчанию True
-
Определяет, следует ли сортировать результат.
Добавлено в версии 1.3.0.
- Возвращает:
-
- DataFrame
-
Сводная таблица в стиле Excel.
См. также
DataFrame.pivot-
Создает сводную таблицу без агрегирования, поддерживающую нечисловые данные.
DataFrame.melt-
Преобразует DataFrame из широкого формата в длинный, при необходимости оставляя набор идентификаторов.
wide_to_long-
Преобразует широкую панель в длинный формат. Менее гибкий, но более удобный для пользователя вариант, чем melt.
Примечания
Дополнительные примеры см. в руководстве пользователя.
Примеры
>>> 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="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Также можно заполнить пропущенные значения с помощью параметра fill_value.
>>> table = pd.pivot_table(df, values='D', index=['A', 'B'], ... columns=['C'], aggfunc="sum", fill_value=0) >>> table C large small A B bar one 4 5 two 7 6 foo one 4 1 two 0 6В следующем примере значения в нескольких столбцах агрегируются путем вычисления среднего.
>>> table = pd.pivot_table(df, values=['D', 'E'], index=['A', 'C'], ... aggfunc={'D': "mean", 'E': "mean"}) >>> table D E A C bar large 5.500000 7.500000 small 5.500000 8.500000 foo large 2.000000 4.500000 small 2.333333 4.333333Также можно вычислить несколько типов агрегатов для любого заданного столбца значений.
>>> table = pd.pivot_table(df, values=['D', 'E'], index=['A', 'C'], ... aggfunc={'D': "mean", ... 'E': ["min", "max", "mean"]}) >>> table D E mean max mean min A C bar large 5.500000 9 7.500000 6 small 5.500000 9 8.500000 8 foo large 2.000000 5 4.500000 4 small 2.333333 6 4.333333 2
© 2008–2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
© 2011–2025, Open source contributors
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.3.0/reference/api/pandas.pivot_table.html