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