Как создать таблицу непредвиденных обстоятельств в Python


Таблица непредвиденных обстоятельств — это тип таблицы, которая обобщает отношения между двумя категориальными переменными.

Чтобы создать таблицу непредвиденных обстоятельств в Python, мы можем использовать функцию pandas.crosstab() , которая использует следующий синтаксис:

pandas.crosstab (индекс, столбцы)

куда:

  • индекс: имя переменной для отображения в строках таблицы непредвиденных обстоятельств
  • столбцы: имя переменной для отображения в столбцах таблицы непредвиденных обстоятельств

В следующем пошаговом примере показано, как использовать эту функцию для создания таблицы непредвиденных обстоятельств в Python.

Шаг 1: Создайте данные

Во-первых, давайте создадим набор данных, который показывает информацию о 20 различных заказах продуктов, включая тип приобретенного продукта (телевизор, компьютер или радио), а также страну (A, B или C), в которой продукт был приобретен:

import pandas as pd

#create data
df = pd.DataFrame({'Order': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
 'Product': ['TV', 'TV', 'Comp', 'TV', 'TV', 'Comp',
 'Comp', 'Comp', 'TV', 'Radio', 'TV', 'Radio', 'Radio',
 'Radio', 'Comp', 'Comp', 'TV', 'TV', 'Radio', 'TV'],
 'Country': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B', 'B',
 'B', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C']})

#view data
df

 Order Product Country
0 1 TV A
1 2 TV A
2 3 Comp A
3 4 TV A
4 5 TV B
5 6 Comp B
6 7 Comp B
7 8 Comp B
8 9 TV B
9 10 Radio B
10 11 TV B
11 12 Radio B
12 13 Radio C
13 14 Radio C
14 15 Comp C
15 16 Comp C
16 17 TV C
17 18 TV C
18 19 Radio C
19 20 TV C

Шаг 2: Создайте таблицу непредвиденных обстоятельств

В следующем коде показано, как создать таблицу непредвиденных обстоятельств для подсчета количества каждого продукта, заказанного каждой страной:

#create contingency table
pd.crosstab (index=df['Country'], columns=df['Product'])

Product Comp Radio TV
Country 
A 1 0 3
B 3 2 3
C 2 3 3

Вот как интерпретировать таблицу:

  • Всего в стране А был приобретен 1 компьютер.
  • Всего в стране Б было закуплено 3 компьютера.
  • Всего в стране C было закуплено 2 компьютера.
  • Всего в стране А было закуплено 0 радиостанций.
  • Всего в стране B было закуплено 2 радиоприемника.
  • Всего в стране С было закуплено 3 радиоприемника.
  • Всего в стране А было приобретено 3 телевизора.
  • Всего в стране Б было приобретено 3 телевизора.
  • Всего было приобретено 3 телевизора в стране C.

Шаг 3. Добавьте итоговые значения маржи в таблицу непредвиденных обстоятельств.

Мы можем использовать аргумент margins=True , чтобы добавить итоговые значения маржи в таблицу непредвиденных обстоятельств:

#add margins to contingency table
pd.crosstab (index=df['Country'], columns=df['Product'], margins= True )

Product Comp Radio TV All
Country 
A 1 0 3 4
B 3 2 3 8
C 2 3 3 8
All 6 5 9 20 

Способ интерпретации значений в таблице следующий:

Всего строк:

  • Всего было сделано 4 заказа из страны А.
  • Всего было сделано 8 заказов из страны B.
  • Всего было сделано 8 заказов из страны C.

Итоги столбца:

  • Всего было куплено 6 компьютеров.
  • Всего было куплено 5 радиостанций.
  • Всего было куплено 9 телевизоров.

Значение в правом нижнем углу таблицы показывает, что всего было заказано 20 товаров из всех стран.

Дополнительные ресурсы

Как создать таблицу непредвиденных обстоятельств в R
Как создать таблицу непредвиденных обстоятельств в Excel