Spec-Zone.ru › pandas 0.23

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API