Spec-Zone.ru › pandas 0.24

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 : 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.

Возвращает:
table : 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 = pivot_table(df, values='D', index=['A', 'B'],
...                     columns=['C'], aggfunc=np.sum)
>>> table
C        large  small
A   B
bar one      4      5
    two      7      6
foo one      4      1
    two    NaN      6

Мы также можем заполнить пропущенные значения, используя параметр fill_value.

>>> table = 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 = pivot_table(df, values=['D', 'E'], index=['A', 'C'],
...                     aggfunc={'D': np.mean,
...                              'E': np.mean})
>>> table
                  D         E
               mean      mean
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 = 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   7.500000   6
    small  5.500000  9   8.500000   8
foo large  2.000000  5   4.500000   4
    small  2.333333  6   4.333333   2

© 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.24.2/reference/api/pandas.DataFrame.pivot_table.html

Spec-Zone.ru

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