• Автор записи:
  • Рубрика записи:Pandas
  • Время чтения:3 минут чтения
  • Комментарии к записи:0 комментариев

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 результат отображается на снимке экрана ниже.

С использованием функции агрегирования

Добавить комментарий