Spec-Zone.ru › pandas 0.25

pandas.crosstab

pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, margins_name='All', dropna=True, normalize=False) [source]

Вычисление простой сводной таблицы для двух (или более) факторов. По умолчанию вычисляет таблицу частот факторов, если не переданы массив значений и функция агрегирования.

Параметры:
index : array-like, Series, or list of arrays/Series

Значения для группировки по строкам.

columns : array-like, Series, or list of arrays/Series

Значения для группировки по столбцам.

values : array-like, optional

Массив значений для агрегирования в соответствии с факторами. Требуется, чтобы был указан aggfunc.

rownames : sequence, default None

Если передано, должно соответствовать количеству массивов строк.

colnames : sequence, default None

Если передано, должно соответствовать количеству массивов столбцов.

aggfunc : function, optional

Если указано, также требуется указать values.

margins : bool, default False

Добавить поля итогов строк/столбцов (подсчёты).

margins_name : str, default ‘All’

Имя строки/столбца, которое будет содержать итоги, когда margins = True.

Добавлено в версии 0.21.0.

dropna : bool, default True

Не включать столбцы, все значения которых равны NaN.

normalize : bool, {‘all’, ‘index’, ‘columns’}, or {0,1}, default False

Нормализовать, разделив все значения на сумму значений.

  • Если передано ‘all’ или True, будет выполнена нормализация по всем значениям.
  • Если передано ‘index’, будет выполнена нормализация по каждой строке.
  • Если передано ‘columns’, будет выполнена нормализация по каждому столбцу.
  • Если margins = True, будут также нормализованы значения полей итогов.

Добавлено в версии 0.18.1.

Возвращает:
DataFrame

Сводная таблица данных.

См. также

DataFrame.pivot
Переформирование данных на основе значений столбцов.
pivot_table
Создание сводной таблицы в виде DataFrame.

Примечания

Любые передаваемые Series будут использовать их атрибуты имени, если не указаны имена строк или столбцов для сводной таблицы.

Любой ввод, содержащий категориальные данные, будет включать все его категории в сводную таблицу, даже если фактические данные не содержат каких-либо экземпляров определенной категории.

В случае отсутствия перекрывающихся индексов будет возвращена пустая DataFrame.

Примеры

>>> a = np.array(["foo", "foo", "foo", "foo", "bar", "bar",
...               "bar", "bar", "foo", "foo", "foo"], dtype=object)
>>> b = np.array(["one", "one", "one", "two", "one", "one",
...               "one", "two", "two", "two", "one"], dtype=object)
>>> c = np.array(["dull", "dull", "shiny", "dull", "dull", "shiny",
...               "shiny", "dull", "shiny", "shiny", "shiny"],
...              dtype=object)
>>> pd.crosstab(a, [b, c], rownames=['a'], colnames=['b', 'c'])
b   one        two
c   dull shiny dull shiny
a
bar    1     2    1     0
foo    2     2    1     2

Здесь ‘c’ и ‘f’ не представлены в данных и не будут отображены в выводе, потому что dropna по умолчанию равно True. Установите dropna=False, чтобы сохранить категории без данных.

>>> foo = pd.Categorical(['a', 'b'], categories=['a', 'b', 'c'])
>>> bar = pd.Categorical(['d', 'e'], categories=['d', 'e', 'f'])
>>> pd.crosstab(foo, bar)
col_0  d  e
row_0
a      1  0
b      0  1
>>> pd.crosstab(foo, bar, dropna=False)
col_0  d  e  f
row_0
a      1  0  0
b      0  1  0
c      0  0  0

© 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.25.0/reference/api/pandas.crosstab.html

Spec-Zone.ru

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