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')[source] -
Создайте сводную таблицу в стиле электронных таблиц в виде DataFrame. Уровни в сводной таблице будут храниться в объектах MultiIndex (иерархические индексы) в индексе и столбцах результирующего DataFrame.
Параметры: -
data : 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.pivot_table.html