Чтобы вычислить кросс-таблицу массивов, используйте метод crosstab() Pandas.
Содержание
Что такое функция Pandas crosstab()?
Функция Pandas crosstab() используется для вычисления перекрестной таблицы двух или более факторов. Она определена в библиотеке Pandas. По умолчанию он вычисляет таблицу частот всех упомянутых факторов, если только не передан массив или список значений и функций агрегирования.
Синтаксис
|
1 2 3 4 |
pandas.crosstab(index, columns, values = None, rownames=None, colnames = None, aggfunc = None, margins = False, margins_name: str = ‘All’, dropna: bool = True, normalize = False) ->’DataFrame’ |
Параметры
Метод crosstab() имеет следующие параметры:
- index: указывает значения для группы в строках. Он принимает массивы, серии, списки или массивы/серии.
- columns: сообщает о значениях для группы в столбцах. Он принимает массив, серию, список или массив/серию.
- values: это массив значений для агрегирования в соответствии с факторами. Требуется указать ggfunc.
- rownames: Необязательный параметр, он должен соответствовать количеству переданных массивов строк.
- colnames: Также необязателен, должен соответствовать количеству переданных массивов столбцов.
- aggfunc: это необязательная функция. Если эта функция указана, она также требует определения значений.
- rownames: принимает логические значения и по умолчанию имеет значение False. Он добавляет поля строк/столбцов.
- margins_name: принимает значения str и по умолчанию установлено значение «All». Это имя строки/столбца, которые будут содержать итоги, когда поля равны True.
- Dropna: также принимает логическое значение и по умолчанию имеет значение True. Он не включает столбцы, все записи которых являются NaN.
- normalize: может принимать логическое значение, {‘all’, ‘index’, ‘columns’} или {0,1}, и по умолчанию его значение равно False. Он нормализуется путем деления значений на сумму значений.
- Если передано «all» или «True», общие значения будут нормализованы.
- Если передан «index», он будет нормализоваться для каждой строки.
- Если переданы «columns», он будет нормализоваться по каждому столбцу.
- Если для полей задано значение True, это также нормализует значения полей.
Возвращаемое значение
Функция crosstab() возвращает DataFrame, представляющий собой перекрестную таблицу данных.

Пример программы с pandas.crosstab()
Напишем программу, показывающую работу pandas.crosstab().
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import pandas as pd import numpy as np data1 = np.array(["a", "a", "a", "a", "b", "b", "b", "b", "c", "c", "c"], dtype=object) data2 = np.array(["1st", "1st", "1st", "2nd", "1st", "1st", "1st", "2nd", "2nd", "2nd", "2nd"], dtype=object) data3 = r = np.array(["x1", "x1", "y1", "x1", "x1", "y1", "y1", "x1", "y1", "y1", "y1"], dtype=object) ctab = pd.crosstab(data1, [data2, data3], rownames=['p'], colnames=['q', 'r']) print(ctab) |
Выход:
|
1 2 3 4 5 6 |
q 1st 2nd r x1 y1 x1 y1 p a 2 1 1 0 b 1 2 1 0 c 0 0 0 3 |
Здесь, в приведенном выше примере мы выполнили перекрестную таблицу на основе более чем двух факторов.
