Spec-Zone.ru › pandas 0.21

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.21.1/generated/pandas.crosstab.html

Spec-Zone.ru

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