Spec-Zone.ru › pandas 1

pandas.crosstab

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

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

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

Parameters
index:array-like, Series, или список массивов/Series

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

columns:array-like, Series, или список массивов/Series

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

values:array-like, необязательно

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

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

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

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

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

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

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

margins:bool, по умолчанию False

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

margins_name:str, по умолчанию ‘All’

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

dropna:bool, по умолчанию True

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

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

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

  • Если передано ‘all’ или True, нормализует по всем значениям.

  • Если передано ‘index’, нормализует по каждой строке.

  • Если передано ‘columns’, нормализует по каждому столбцу.

  • Если margins=True, также нормализует значения полей итогов.

Returns
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–2022, 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/1.5.0/reference/api/pandas.crosstab.html

Spec-Zone.ru

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