Spec-Zone.ru › pandas 0.24

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

Spec-Zone.ru

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