Håndtering af Kategoriske Variabler
Nu skal du arbejde med datasættet, der ikke indeholder manglende værdier. NaN
-værdierne fra kolonnen 'Age'
er blevet erstattet med gennemsnittet af kolonnen, og NaN
-værdien fra kolonnen 'Fare'
er blevet slettet.
Så nu er det tid til at lære, hvordan man håndterer kategoriske variabler. Kategorisk betyder, at de har nogle kategorier. For eksempel er der i kolonnen 'Sex'
både 'male'
og 'female'
; eller i kolonnen 'Embarked'
er der 'Q'
, 'S'
og 'C'
.
Hvad skal vi gøre for at beregne antallet af værdier i hver kategori eller for at finde information om dem?
Du kender allerede .loc[]
, .isin()
, .between()
og mange funktioner, men i pandas findes der en mere elegant og bekvem metode til dette. Brug funktionen .get_dummies()
. Som eksempel anvender vi den på kolonnen 'Embarked'
. Se implementeringen og resultatet (vi viser 5 tilfældige passagerers navne og de nye kolonner, vi har oprettet).
1234import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/titanic3.csv', index_col = 0) data = pd.get_dummies(data, columns = ['Embarked']) print(data[['Name', 'Embarked_C', 'Embarked_Q', 'Embarked_S']].sample(5))
Lad os undersøge en af de mulige outputs, specifikt en af de mulige kombinationer af fem tilfældigt udvalgte rækker. Du kan rulle vandret gennem tabellen for at se alle kolonnerne:
Forklaring:
Som resultat har vores funktion opdelt kolonnen 'Embarked'
i tre kolonner: 'Embarked_C'
, 'Embarked_Q'
og 'Embarked_S'
. I alt har vi tre kategorier. Hver passager har deres kategori i kolonnen 'Embarked'
. Derfor opretter vores funktion tre kolonner, der svarer til hver kategori, og for hver passager udfylder den rækken i kolonnen med 1
, hvis personen oprindeligt var relateret til den pågældende geografi; ellers angives 0
. Dermed får vi 1
i kun én kolonne.
pd.get_dummies(data, columns = ['Embarked'])
pd.get_dummies()
– denne funktion konverterer kategoriske variabler til dummy-variabler (1 eller 0);data
– det data frame, du ønsker at bruge;columns = ['Embarked']
– kolonner med kategoriske variabler, som du vil omdanne til dummy-variabler. Bemærk, det er obligatorisk at sætte kolonnenavne i en liste.
Swipe to start coding
Din opgave her er at omdanne kolonnen 'Sex'
til en med dummyvariabler i stedet for kategoriske værdier. Udskriv derefter summen af værdierne i hver kategori.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain why we use dummy variables instead of keeping the original categorical columns?
How can I use get_dummies() for multiple columns at once?
What should I do if my categorical column has many unique values?
Awesome!
Completion rate improved to 3.03
Håndtering af Kategoriske Variabler
Stryg for at vise menuen
Nu skal du arbejde med datasættet, der ikke indeholder manglende værdier. NaN
-værdierne fra kolonnen 'Age'
er blevet erstattet med gennemsnittet af kolonnen, og NaN
-værdien fra kolonnen 'Fare'
er blevet slettet.
Så nu er det tid til at lære, hvordan man håndterer kategoriske variabler. Kategorisk betyder, at de har nogle kategorier. For eksempel er der i kolonnen 'Sex'
både 'male'
og 'female'
; eller i kolonnen 'Embarked'
er der 'Q'
, 'S'
og 'C'
.
Hvad skal vi gøre for at beregne antallet af værdier i hver kategori eller for at finde information om dem?
Du kender allerede .loc[]
, .isin()
, .between()
og mange funktioner, men i pandas findes der en mere elegant og bekvem metode til dette. Brug funktionen .get_dummies()
. Som eksempel anvender vi den på kolonnen 'Embarked'
. Se implementeringen og resultatet (vi viser 5 tilfældige passagerers navne og de nye kolonner, vi har oprettet).
1234import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/titanic3.csv', index_col = 0) data = pd.get_dummies(data, columns = ['Embarked']) print(data[['Name', 'Embarked_C', 'Embarked_Q', 'Embarked_S']].sample(5))
Lad os undersøge en af de mulige outputs, specifikt en af de mulige kombinationer af fem tilfældigt udvalgte rækker. Du kan rulle vandret gennem tabellen for at se alle kolonnerne:
Forklaring:
Som resultat har vores funktion opdelt kolonnen 'Embarked'
i tre kolonner: 'Embarked_C'
, 'Embarked_Q'
og 'Embarked_S'
. I alt har vi tre kategorier. Hver passager har deres kategori i kolonnen 'Embarked'
. Derfor opretter vores funktion tre kolonner, der svarer til hver kategori, og for hver passager udfylder den rækken i kolonnen med 1
, hvis personen oprindeligt var relateret til den pågældende geografi; ellers angives 0
. Dermed får vi 1
i kun én kolonne.
pd.get_dummies(data, columns = ['Embarked'])
pd.get_dummies()
– denne funktion konverterer kategoriske variabler til dummy-variabler (1 eller 0);data
– det data frame, du ønsker at bruge;columns = ['Embarked']
– kolonner med kategoriske variabler, som du vil omdanne til dummy-variabler. Bemærk, det er obligatorisk at sætte kolonnenavne i en liste.
Swipe to start coding
Din opgave her er at omdanne kolonnen 'Sex'
til en med dummyvariabler i stedet for kategoriske værdier. Udskriv derefter summen af værdierne i hver kategori.
Løsning
Tak for dine kommentarer!
single