Come creare una tabella di contingenza in python


Una tabella di contingenza è un tipo di tabella che riepiloga la relazione tra due variabili categoriali.

Per creare una tabella di contingenza in Python, possiamo utilizzare la funzione pandas.crosstab() , che utilizza la seguente sintassi:

pandas.crosstab(indice, colonne)

Oro:

  • indice: nome della variabile da visualizzare nelle righe della tabella di contingenza
  • colonne: nome della variabile da visualizzare nelle colonne della tabella di contingenza

Il seguente esempio passo passo mostra come utilizzare questa funzione per creare una tabella di contingenza in Python.

Passaggio 1: creare i dati

Innanzitutto, creiamo un set di dati che visualizzi informazioni su 20 diversi ordini di prodotti, incluso il tipo di prodotto acquistato (TV, computer o radio) e il paese (A, B o C) in cui il prodotto è stato acquistato:

 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

Passaggio 2: creare la tabella di contingenza

Il codice seguente mostra come creare una tabella di contingenza per contare il numero di ciascun prodotto ordinato da ciascun paese:

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

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

Ecco come interpretare la tabella:

  • Nel paese A è stato acquistato un totale di 1 computer.
  • Nel paese B sono stati acquistati in totale 3 computer.
  • Nel paese C sono stati acquistati in totale 2 computer.
  • Nel paese A sono state acquistate in totale 0 radio.
  • Nel paese B sono state acquistate in totale 2 radio.
  • Nel paese C sono state acquistate complessivamente 3 radio.
  • Nel paese A sono stati acquistati complessivamente 3 televisori.
  • Nel paese B sono stati acquistati complessivamente 3 televisori.
  • Nel paese C sono stati acquistati complessivamente 3 televisori.

Passaggio 3: aggiungi i totali dei margini alla tabella di contingenza

Possiamo usare l’argomento margins=True per aggiungere i totali dei margini alla tabella di contingenza:

 #add margins to contingency table
p.d. 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

Il modo di interpretare i valori della tabella è il seguente:

Totali righe:

  • Sono stati effettuati in totale 4 ordini dal Paese A.
  • Sono stati effettuati complessivamente 8 ordini dal Paese B.
  • Sono stati effettuati complessivamente 8 ordini dal Paese C.

Totali delle colonne:

  • Sono stati acquistati un totale di 6 computer.
  • Sono state acquistate 5 radio in totale.
  • Sono stati acquistati complessivamente 9 televisori.

Il valore nell’angolo in basso a destra della tabella mostra che sono stati ordinati un totale di 20 prodotti da tutti i paesi.

Risorse addizionali

Come creare una tabella di contingenza in R
Come creare una tabella di contingenza in Excel

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *