Hoe u een contingentietabel maakt in python


Een kruistabel is een soort tabel die de relatie tussen twee categorische variabelen samenvat.

Om een kruistabel in Python te maken, kunnen we de functie pandas.crosstab() gebruiken, die de volgende syntaxis gebruikt:

pandas.crosstab(index, kolommen)

Goud:

  • index: naam van de variabele die moet worden weergegeven in de rijen van de kruistabel
  • kolommen: naam van de variabele die moet worden weergegeven in de kolommen van de kruistabel

Het volgende stapsgewijze voorbeeld laat zien hoe u deze functie kunt gebruiken om een kruistabel in Python te maken.

Stap 1: Creëer de gegevens

Laten we eerst een dataset maken die informatie weergeeft over twintig verschillende productbestellingen, inclusief het type gekochte product (tv, computer of radio) en het land (A, B of C) waarin het product is gekocht:

 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

Stap 2: Maak de kruistabel

De volgende code laat zien hoe u een kruistabel kunt maken om het aantal van elk product te tellen dat door elk land is besteld:

 #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

Zo interpreteert u de tabel:

  • Er is in totaal 1 computer aangeschaft in land A.
  • In land B zijn in totaal 3 computers aangeschaft.
  • In land C zijn in totaal 2 computers aangeschaft.
  • Er zijn in totaal 0 radio’s aangeschaft in land A.
  • In land B zijn in totaal 2 radio’s aangeschaft.
  • In land C zijn in totaal 3 radio’s aangeschaft.
  • In land A zijn in totaal 3 televisies aangeschaft.
  • In land B zijn in totaal 3 televisies aangeschaft.
  • In land C zijn in totaal 3 televisies aangeschaft.

Stap 3: Voeg margetotalen toe aan de kruistabel

We kunnen het argument margins=True gebruiken om de margetotalen toe te voegen aan de kruistabel:

 #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

De manier om de tabelwaarden te interpreteren is als volgt:

Regeltotalen:

  • Er zijn in totaal 4 bestellingen geplaatst vanuit land A.
  • Er zijn in totaal 8 bestellingen geplaatst vanuit land B.
  • Er zijn in totaal 8 bestellingen geplaatst vanuit land C.

Kolomtotalen:

  • Er zijn in totaal 6 computers aangeschaft.
  • Er zijn in totaal 5 radio’s aangeschaft.
  • Er zijn in totaal 9 televisies aangeschaft.

Uit de waarde rechtsonder in de tabel blijkt dat er in totaal 20 producten uit alle landen zijn besteld.

Aanvullende bronnen

Hoe u een kruistabel maakt in R
Hoe u een contingentietabel maakt in Excel

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert