pandas.DataFrame.pivot_table
-
DataFrame.pivot_table(values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')[source] -
Создаёт сводную таблицу в формате электронных таблиц в виде DataFrame. Уровни в сводной таблице будут храниться в объектах MultiIndex (многоуровневые индексы) в индексе и столбцах результирующего DataFrame.
Параметры: -
values : column to aggregate, optional
index : столбец, Grouper, массив или список предыдущих
Если передан массив, его длина должна совпадать с данными. Список может содержать любые из других типов (кроме списка). Ключи для группировки по индексу сводной таблицы. Если передан массив, он используется аналогично значениям столбцов.
columns : столбец, Grouper, массив или список предыдущих
Если передан массив, его длина должна совпадать с данными. Список может содержать любые из других типов (кроме списка). Ключи для группировки по столбцам сводной таблицы. Если передан массив, он используется аналогично значениям столбцов.
aggfunc : функция, список функций, словарь, по умолчанию numpy.mean
Если передан список функций, результирующая сводная таблица будет иметь иерархические столбцы, верхний уровень которых — имена функций (определяются по самим объектам функций). Если передан словарь, ключ — столбец для агрегации, значение — функция или список функций.
fill_value : скаляр, по умолчанию None
Значение для заполнения пропущенных значений.
margins : булево, по умолчанию False
Добавить все строки/столбцы (например, для подсчета промежуточных/общих итогов).
dropna : булево, по умолчанию True
Не включать столбцы, чьи записи все NaN.
margins_name : строка, по умолчанию ‘All’
Имя строки/столбца, которое будет содержать итоги, когда margins = True.
Возвращает: -
table : DataFrame
См. также
-
DataFrame.pivot - функция 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]}) >>> df A B C D 0 foo one small 1 1 foo one large 2 2 foo one large 2 3 foo two small 3 4 foo two small 3 5 bar one large 4 6 bar one small 5 7 bar two small 6 8 bar two large 7>>> table = 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>>> table = 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>>> table = pivot_table(df, values=['D', 'E'], index=['A', 'C'], ... aggfunc={'D': np.mean, ... 'E': [min, max, np.mean]}) >>> table D E mean max median min A C bar large 5.500000 16 14.5 13 small 5.500000 15 14.5 14 foo large 2.000000 10 9.5 9 small 2.333333 12 11.0 8 -
© 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.23.4/generated/pandas.DataFrame.pivot_table.html