Spec-Zone.ru › pandas 2

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 или список массивов/Series

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

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

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

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

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

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

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

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

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

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

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

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

Добавить итоговые строки/столбцы (подсчёты).

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

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

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

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

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

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

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

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

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

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

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

Spec-Zone.ru

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