pandas.crosstab
-
pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, dropna=True, normalize=False)[source] -
Вычислить простую перекрёстную таблицу двух (или более) факторов. По умолчанию вычисляет таблицу частот факторов, если не переданы массив значений и функция агрегирования.
Параметры: index : массив-подобный объект, Series или список массивов/Series
Значения для группировки по строкам
columns : массив-подобный объект, Series или список массивов/Series
Значения для группировки по столбцам
values : массив-подобный объект, необязательно
Массив значений для агрегирования в соответствии с факторами. Требуется, чтобы был указан
aggfunc.aggfunc : функция, необязательно
Если указано, требуется также указать
values.rownames : последовательность, по умолчанию None
Если передано, должно соответствовать числу переданных массивов строк
colnames : последовательность, по умолчанию None
Если передано, должно соответствовать числу переданных массивов столбцов
margins : булево значение, по умолчанию False
Добавить поля итогов по строкам/столбцам (суммарные значения)
dropna : булево значение, по умолчанию True
Исключить столбцы, все записи которых равны NaN
normalize : булево значение, {‘all’, ‘index’, ‘columns’}, или {0,1}, по умолчанию False
Нормализовать, поделив все значения на сумму значений.
- Если передано ‘all’ или
True, будет нормализация по всем значениям. - Если передано ‘index’, будет нормализация по каждой строке.
- Если передано ‘columns’, будет нормализация по каждому столбцу.
- Если margins равно
True, будут нормализованы и значения итогов.
Введено в версии 0.18.1.
Возвращает: crosstab : DataFrame
Примечания
Любые переданные Series будут использовать свои атрибуты имени, если не указаны имена строк или столбцов для перекрёстной таблицы.
Любой ввод, содержащий категориальные данные, будет содержать все его категории в перекрёстной таблице, даже если фактические данные не содержат никаких экземпляров определённой категории.
В случае отсутствия перекрывающихся индексов будет возвращена пустая DataFrame.
Примеры
>>> a array([foo, foo, foo, foo, bar, bar, bar, bar, foo, foo, foo], dtype=object) >>> b array([one, one, one, two, one, one, one, two, two, two, one], dtype=object) >>> c array([dull, dull, shiny, dull, dull, shiny, shiny, dull, shiny, shiny, shiny], dtype=object)>>> 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 - Если передано ‘all’ или
© 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.19.2/generated/pandas.crosstab.html