Spec-Zone.ru › pandas 0.23

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

Spec-Zone.ru

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