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=False)[source] -
Создайте сводную таблицу в стиле электронных таблиц как DataFrame. Уровни в сводной таблице будут храниться в объектах MultiIndex (иерархические индексы) в индексе и столбцах результирующего DataFrame.
Параметры: -
data : DataFrame -
values : column to aggregate, optional -
index : column, Grouper, array, or list of the previous -
Если передается массив, его длина должна совпадать с данными. Список может содержать любые другие типы (кроме списка). Ключи для группировки по индексу сводной таблицы. Если передается массив, он используется так же, как значения столбцов.
-
columns : column, Grouper, array, or list of the previous -
Если передается массив, его длина должна совпадать с данными. Список может содержать любые другие типы (кроме списка). Ключи для группировки по столбцу сводной таблицы. Если передается массив, он используется так же, как значения столбцов.
-
aggfunc : function, list of functions, dict, default numpy.mean -
Если передается список функций, результирующая сводная таблица будет иметь иерархические столбцы, верхний уровень которых — имена функций (определяются из самих объектов функций). Если передается словарь, ключ — столбец для агрегирования, значение — функция или список функций.
-
fill_value : scalar, default None -
Значение для заполнения пропущенных значений
-
margins : boolean, default False -
Добавить все строки/столбцы (например, для подсчета итогов/общих итогов)
-
dropna : boolean, default True -
Не включать столбцы, чьи значения — все NaN
-
margins_name : string, default ‘All’ -
Имя строки/столбца, которое будет содержать итоги, когда margins = True.
-
observed : boolean, default False -
Это относится только в том случае, если некоторые из группирующих элементов являются категориальными. Если True: отображаются только наблюдаемые значения для категориальных группирующих элементов. Если False: отображаются все значения для категориальных группирующих элементов.
Изменено в версии 0.25.0.
Возвращает: - DataFrame
См. также
-
DataFrame.pivot - Сводка без агрегирования, которая может обрабатывать нечисленные данные.
Примеры
>>> 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Мы также можем заполнить пропущенные значения, используя параметр
fill_value.>>> table = pd.pivot_table(df, values='D', index=['A', 'B'], ... columns=['C'], aggfunc=np.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': np.mean, ... 'E': np.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': np.mean, ... 'E': [min, max, np.mean]}) >>> table D E mean max mean min A C bar large 5.500000 9.0 7.500000 6.0 small 5.500000 9.0 8.500000 8.0 foo large 2.000000 5.0 4.500000 4.0 small 2.333333 6.0 4.333333 2.0 -
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.25.0/reference/api/pandas.pivot_table.html