Pandas — это мощная библиотека Python, используемая для анализа данных и предлагающая нам различные функции для манипулирования и анализа данных. Одной из функций является функция pd.crosstab в Python.
Функция pd.crosstab() или перекрестной таблицы Pandas в Python используется для вычисления простой перекрестной таблицы двух (или более) факторов.
По умолчанию вычисляется таблица частот факторов, если в Python не передаются массив значений и функция агрегирования.
Основной синтаксис pd.crosstab в Python следующий:
pd.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, margins_name='All', dropna=True, normalize=False)
Вот список всех аргументов, которые мы можем передать в функцию перекрестной таблицы Pandas, и их роли в Python:
Имя аргумента | Описание |
---|---|
index | Это представляет значения для группировки в строках (аналогично операции groupby). |
columns | Это значения для группировки в столбцах. |
values | Необязательный параметр, представляющий значения для агрегирования. Если не указано, функция будет подсчитывать вхождения. |
rownames | (Необязательно) Имена, которые будут присвоены результирующему индексу строки и столбца. |
colnames | (Необязательно) Имена, которые будут присвоены индексу столбца. |
aggfunc | (Необязательно) Указывает функцию агрегирования, которая будет применяться при предоставлении значений. Если не указано, по умолчанию ведется подсчет. |
margins | (Необязательно) Если True, добавляются поля строк и столбцов (итого). |
margins_name | (Необязательно) Имя строки и столбца, содержащих поля, если поля имеют значение True. |
dropna | (Необязательно) Если значение равно False, оно включает все значения, включая те, которые отсутствуют в данных, что приводит к NaN. |
normalize | (Необязательно) Если значение True, оно нормализуется путем деления всех значений на сумму значений. |
Ниже я объясняю использование некоторых аргументов в pd.crosstab в Python:
Имена аргументов | Описание |
---|---|
index and columns | Эти основные параметры представляют собой категориальные переменные, для которых будет рассчитываться перекрестная таблица. Мы можем передавать отдельные столбцы или списки столбцов. |
values | Этот параметр используется для указания значений, подлежащих агрегированию. Если этот параметр не указан, в результате будет показано количество вхождений. |
aggfunc | Если указаны значения, aggfunc — это применяемая функция агрегирования. Обычные варианты включают сумму, среднее значение, количество и т. д. |
margins | Если установлено значение True, добавляются поля строк и столбцов, предоставляя промежуточные итоги для каждой строки и столбца. |
normalize | Установка значения True преобразует значения в проценты, обеспечивая нормализованное представление данных. |
Возвращаемое значение функции перекрестной таблицы Pandas в Python:
- Функция pd.crosstab в Python возвращает DataFrame, представляющий перекрестную таблицу входных переменных.
- Строки соответствуют значениям параметра index, а столбцы — значениям параметра columns.
Примеры
Давайте посмотрим несколько примеров и попытаемся понять, как мы можем использовать функцию перекрестной таблицы Pandas в Python.
Функция перекрестной таблицы в основном использовании
Давайте рассмотрим пример, который будет анализировать и суммировать данные в табличной форме с использованием pd.crosstab в Python:
import pandas as pd Staff_data = {'Names': ['Joey', 'Monica', 'Chandler', 'Rachel', 'Ross', 'Phoebe'], 'Gender': ['Male', 'Female', 'Male', 'Female', 'Male', 'Female'], 'Technologies': ['Python', 'Marketing', 'Python', 'Python', 'Marketing', 'Marketing']} df = pd.DataFrame(Staff_data) result = pd.crosstab(df['Gender'], df['Technologies']) print(result)
Выходные данные: функция pd.crosstab в Python используется для создания перекрестной таблицы столбцов «Пол» и «Технологии» из DataFrame.
Результат сохраняется в переменной result.
Technologies Marketing Python Gender Female 2 1 Male 1 2
Вот скриншот реализации кода в редакторе Pycharm Python:
С использованием функции агрегирования
Давайте возьмем другой пример, где мы можем использовать различные аргументы, присутствующие в pd.crosstab в Python, для расчета перекрестной таблицы:
import pandas as pd Client_data = {'Names': ['Joey', 'Monica', 'Chandler', 'Rachel', 'Ross', 'Phoebe'], 'Gender': ['Male', 'Female', 'Male', 'Female', 'Male', 'Female'], 'Products': ['Iphone', 'Mac Book', 'Iphone', 'Iphone', 'Mac Book', 'Iphone']} df = pd.DataFrame(Client_data) result = pd.crosstab(df['Gender'], df['Products'], values=df['Gender'], aggfunc='count') print(result)
Вывод: функция pd.crosstab в Python используется для создания перекрестной таблицы столбцов «Пол» и «Продукты» из DataFrame.
- Параметр values=df[‘Gender’] указывает, что мы хотим подсчитать количество вхождений каждой комбинации пола и продукта.
- Параметр aggfunc=’count’ указывает используемую функцию агрегирования, которая в данном случае производит подсчет.
Products Iphone Mac Book Gender Female 2 1 Male 2 1
После выполнения кода в Pycharm результат отображается на снимке экрана ниже.