Spec-Zone.ru › pandas 0.19

pandas.crosstab

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

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

Параметры:

index : массив-подобный объект, Series или список массивов/Series

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

columns : массив-подобный объект, Series или список массивов/Series

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

values : массив-подобный объект, необязательно

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

aggfunc : функция, необязательно

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

rownames : последовательность, по умолчанию None

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

colnames : последовательность, по умолчанию None

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

margins : булево значение, по умолчанию False

Добавить поля итогов по строкам/столбцам (суммарные значения)

dropna : булево значение, по умолчанию True

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

normalize : булево значение, {‘all’, ‘index’, ‘columns’}, или {0,1}, по умолчанию False

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

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

Введено в версии 0.18.1.

Возвращает:

crosstab : DataFrame

Примечания

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

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

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

Примеры

>>> a
array([foo, foo, foo, foo, bar, bar,
       bar, bar, foo, foo, foo], dtype=object)
>>> b
array([one, one, one, two, one, one,
       one, two, two, two, one], dtype=object)
>>> c
array([dull, dull, shiny, dull, dull, shiny,
       shiny, dull, shiny, shiny, shiny], dtype=object)
>>> 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
>>> foo = pd.Categorical(['a', 'b'], categories=['a', 'b', 'c'])
>>> bar = pd.Categorical(['d', 'e'], categories=['d', 'e', 'f'])
>>> crosstab(foo, bar)  # 'c' and 'f' are not represented in the data,
                        # but they still will be counted in the output
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.19.2/generated/pandas.crosstab.html

Spec-Zone.ru

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