Categorische variabelen maken in panda's (met voorbeelden)
U kunt een van de volgende methoden gebruiken om eencategorische variabele in panda’s te maken:
Methode 1: Creëer een categorische variabele vanaf nul
df[' cat_variable '] = [' A ', ' B ', ' C ', ' D ']
Methode 2: Creëer een categorische variabele op basis van een bestaande numerieke variabele
df[' cat_variable '] = pd. cut (df[' numeric_variable '], bins=[ 0,15,25 ,float(' Inf ') ] , labels=[' Bad ', ' OK ', ' Good '])
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken.
Voorbeeld 1: Creëer een categorische variabele vanaf nul
De volgende code laat zien hoe u een Panda DataFrame maakt met een categorische variabele met de naam team en een numerieke variabele met de naam punten :
import pandas as pd
#create DataFrame with one categorical variable and one numeric variable
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
' points ': [12, 15, 19, 22, 24, 25, 26, 30]})
#view DataFrame
print (df)
team points
0 to 12
1 B 15
2 C 19
3 D 22
4 E 24
5 F 25
6 G 26
7:30 a.m.
#view data type of each column in DataFrame
print ( df.dtypes )
team object
int64 dots
dtype:object
Met df.dtypes kunnen we het gegevenstype van elke variabele in het DataFrame zien.
Wij kunnen zien:
- De teamvariabele is een object .
- De puntenvariabele is een geheel getal .
In Python is een object gelijk aan een teken of een ‘categorische’ variabele. De teamvariabele is dus een categorische variabele.
Voorbeeld 2: Maak een categorische variabele op basis van een bestaande numerieke variabele
De volgende code laat zien hoe u een categorische variabele met de naam status kunt maken op basis van de bestaande numerieke variabele met de naam punten in het DataFrame:
import pandas as pd
#create DataFrame with one categorical variable and one numeric variable
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
' points ': [12, 15, 19, 22, 24, 25, 26, 30]})
#create categorical variable 'status' based on existing numerical 'points' variable
df[' status '] = pd. cut (df[' points '],
bins=[ 0,15,25 ,float(' Inf ') ] ,
labels=[' Bad ', ' OK ', ' Good '])
#view updated DataFrame
print (df)
team points status
0 To 12 Bad
1 B 15 Bad
2 C 19 OK
3 D 22 OK
4 E 24 OK
5 F 25 OK
6 G 26 Good
7:30 a.m. Good
Met behulp van de functie cut() hebben we een nieuwe categorische variabele gemaakt met de naam status , die de volgende waarden aanneemt:
- ‚ Slecht ‚ als de waarde in de puntenkolom kleiner is dan of gelijk is aan 15.
- Anders ‚ OK ‚ als de waarde in de puntenkolom kleiner is dan of gelijk is aan 25.
- Anders: “ Goed ”.
Houd er rekening mee dat bij gebruik van de functie cut() het aantal labels één minder moet zijn dan het aantal bakken .
In ons voorbeeld hebben we vier waarden voor vakken gebruikt om de randen van de vakken te definiëren en drie waarden voor labels om de labels op te geven die voor de categorische variabele moeten worden gebruikt.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende panda-taken kunt uitvoeren:
Hoe dummyvariabelen in Panda’s te maken
Hoe een categorische variabele naar numeriek te converteren in Pandas
Hoe Booleaanse waarden naar gehele waarden in Panda’s te converteren