Spec-Zone.ru › pandas 0.24

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 : boolean, default False

Добавить поля строк/столбцов (подсуммы)

margins_name : string, default ‘All’

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

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

dropna : boolean, default True

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

normalize : boolean, {‘all’, ‘index’, ‘columns’}, or {0,1}, default 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'])
... # doctest: +NORMALIZE_WHITESPACE
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,
                        # and will not be shown in the output because
                        # dropna is True by default. Set 'dropna=False'
                        # to preserve categories with no data
... # doctest: +SKIP
col_0  d  e
row_0
a      1  0
b      0  1
>>> crosstab(foo, bar, dropna=False)  # 'c' and 'f' are not represented
                        # in the data, but they still will be counted
                        # and shown in the output
... # doctest: +SKIP
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.24.2/reference/api/pandas.crosstab.html

Spec-Zone.ru

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