Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Håndtering av Kategoriske Variabler | Forbehandling av Data
Avanserte Teknikker i Pandas

bookHåndtering av Kategoriske Variabler

Nå skal du arbeide med datasettet som ikke inneholder manglende verdier. NaN-verdiene fra kolonnen 'Age' ble erstattet med gjennomsnittet av kolonnen, og NaN-verdien fra kolonnen 'Fare' ble fjernet. Så nå er det på tide å lære hvordan man håndterer kategoriske variabler. Kategorisk betyr at de har noen kategorier. For eksempel, i kolonnen 'Sex' finnes det 'male' og 'female'; eller i kolonnen 'Embarked' finnes det 'Q', 'S' og 'C'.

Hva bør vi gjøre for å beregne antall verdier i hver kategori eller for å finne informasjon om dem?

Du kjenner allerede til .loc[], .isin(), .between() og mange funksjoner, men i pandas finnes det en mer elegant og praktisk måte å gjøre dette på. Bruk funksjonen .get_dummies(). Som et eksempel vil vi bruke den på kolonnen 'Embarked'. Se på implementeringen og resultatet (vi vil vise navnene til 5 tilfeldige passasjerer og de nye kolonnene vi har opprettet).

1234
import 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))
copy

La oss undersøke en av de mulige utdataene, spesielt en av de mulige kombinasjonene av fem tilfeldig valgte rader. Du kan bla horisontalt gjennom tabellen for å se alle kolonnene:

Forklaring:

Som et resultat har funksjonen vår delt kolonnen 'Embarked' i tre kolonner: 'Embarked_C', 'Embarked_Q' og 'Embarked_S'. Totalt har vi tre kategorier. Hver passasjer har sin kategori i kolonnen 'Embarked'. Dermed oppretter funksjonen vår tre kolonner som tilsvarer hver kategori, og for hver passasjer fyller den raden i kolonnen med 1 hvis personen opprinnelig var tilknyttet den geografien; ellers settes det 0. Dermed får vi 1 i kun én kolonne.

pd.get_dummies(data, columns = ['Embarked'])
  • pd.get_dummies() – denne funksjonen konverterer kategoriske variabler til dummy-variabler (1 eller 0);
  • data – dataframen du ønsker å bruke;
  • columns = ['Embarked'] – kolonner som inneholder kategoriske variabler du ønsker å gjøre om til dummy-variabler. Merk at det er obligatorisk å sette kolonnenavnene i en liste.
Oppgave

Swipe to start coding

Oppgaven her er å transformere kolonnen 'Sex' til en med dummyvariabler i stedet for kategoriske verdier. Deretter skal du vise summen av verdiene i hver kategori.

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 6
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 3.03

bookHåndtering av Kategoriske Variabler

Sveip for å vise menyen

Nå skal du arbeide med datasettet som ikke inneholder manglende verdier. NaN-verdiene fra kolonnen 'Age' ble erstattet med gjennomsnittet av kolonnen, og NaN-verdien fra kolonnen 'Fare' ble fjernet. Så nå er det på tide å lære hvordan man håndterer kategoriske variabler. Kategorisk betyr at de har noen kategorier. For eksempel, i kolonnen 'Sex' finnes det 'male' og 'female'; eller i kolonnen 'Embarked' finnes det 'Q', 'S' og 'C'.

Hva bør vi gjøre for å beregne antall verdier i hver kategori eller for å finne informasjon om dem?

Du kjenner allerede til .loc[], .isin(), .between() og mange funksjoner, men i pandas finnes det en mer elegant og praktisk måte å gjøre dette på. Bruk funksjonen .get_dummies(). Som et eksempel vil vi bruke den på kolonnen 'Embarked'. Se på implementeringen og resultatet (vi vil vise navnene til 5 tilfeldige passasjerer og de nye kolonnene vi har opprettet).

1234
import 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))
copy

La oss undersøke en av de mulige utdataene, spesielt en av de mulige kombinasjonene av fem tilfeldig valgte rader. Du kan bla horisontalt gjennom tabellen for å se alle kolonnene:

Forklaring:

Som et resultat har funksjonen vår delt kolonnen 'Embarked' i tre kolonner: 'Embarked_C', 'Embarked_Q' og 'Embarked_S'. Totalt har vi tre kategorier. Hver passasjer har sin kategori i kolonnen 'Embarked'. Dermed oppretter funksjonen vår tre kolonner som tilsvarer hver kategori, og for hver passasjer fyller den raden i kolonnen med 1 hvis personen opprinnelig var tilknyttet den geografien; ellers settes det 0. Dermed får vi 1 i kun én kolonne.

pd.get_dummies(data, columns = ['Embarked'])
  • pd.get_dummies() – denne funksjonen konverterer kategoriske variabler til dummy-variabler (1 eller 0);
  • data – dataframen du ønsker å bruke;
  • columns = ['Embarked'] – kolonner som inneholder kategoriske variabler du ønsker å gjøre om til dummy-variabler. Merk at det er obligatorisk å sette kolonnenavnene i en liste.
Oppgave

Swipe to start coding

Oppgaven her er å transformere kolonnen 'Sex' til en med dummyvariabler i stedet for kategoriske verdier. Deretter skal du vise summen av verdiene i hver kategori.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 6
single

single

some-alt