Spec-Zone.ru › pandas 0.23

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 : массив-подобный объект, Series или список массивов/Series

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

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

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

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

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

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

Если указано, также необходимо указать values.

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

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

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

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

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

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

margins_name : строка, по умолчанию ‘All’

Имя строки/столбца, содержащего итоги, когда margins равно True.

Новое в версии 0.21.0.

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

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

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

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

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

Новое в версии 0.18.1.

Возвращает:
crosstab : 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
>>> 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.23.4/generated/pandas.crosstab.html

Spec-Zone.ru

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