pandas.DataFrame.pivot_table
-
DataFrame.pivot_table(self, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', observed=False)[source] -
Создайте сводную таблицу в стиле электронных таблиц как DataFrame. Уровни в сводной таблице будут храниться в объектах MultiIndex (иерархические индексы) в индексе и столбцах результирующего 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.DataFrame.pivot_table.html