So erstellen sie kategoriale variablen in pandas (mit beispielen)
Sie können eine der folgenden Methoden verwenden, um eine kategoriale Variable in Pandas zu erstellen:
Methode 1: Erstellen Sie eine kategoriale Variable von Grund auf
df[' cat_variable '] = [' A ', ' B ', ' C ', ' D ']
Methode 2: Erstellen Sie eine kategoriale Variable aus einer vorhandenen numerischen Variablen
df[' cat_variable '] = pd. cut (df[' numeric_variable '], bins=[ 0,15,25 ,float(' Inf ') ] , labels=[' Bad ', ' OK ', ' Good '])
Die folgenden Beispiele zeigen, wie die einzelnen Methoden in der Praxis angewendet werden.
Beispiel 1: Erstellen Sie eine kategoriale Variable von Grund auf
Der folgende Code zeigt, wie man einen Pandas-DataFrame mit einer kategorialen Variablen namens „ team “ und einer numerischen Variablen namens „ points“ erstellt:
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
Mit df.dtypes können wir den Datentyp jeder Variablen im DataFrame sehen.
Wir sehen:
- Die Teamvariable ist ein Objekt .
- Die Punktevariable ist eine Ganzzahl .
In Python entspricht ein Objekt einem Zeichen oder einer „kategorialen“ Variablen. Somit ist die Teamvariable eine kategoriale Variable.
Beispiel 2: Erstellen Sie eine kategoriale Variable aus einer vorhandenen numerischen Variablen
Der folgende Code zeigt, wie man aus der vorhandenen numerischen Variablen namens „ points“ im DataFrame eine kategoriale Variable namens „ status“ erstellt:
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
Mit der Funktion „cut()“ haben wir eine neue kategoriale Variable namens „status“ erstellt, die die folgenden Werte annimmt:
- „ Schlecht “, wenn der Wert in der Punktespalte kleiner oder gleich 15 ist.
- Andernfalls „ OK “, wenn der Wert in der Punktespalte kleiner oder gleich 25 ist.
- Ansonsten „ Gut “.
Beachten Sie, dass bei Verwendung der Funktion „cut()“ die Anzahl der Etiketten um eins kleiner sein muss als die Anzahl der Behälter .
In unserem Beispiel haben wir vier Werte für Boxen verwendet, um die Ränder der Boxen zu definieren, und drei Werte für Beschriftungen , um die Beschriftungen anzugeben, die für die kategoriale Variable verwendet werden sollen.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Panda-Aufgaben ausführen:
So erstellen Sie Dummy-Variablen in Pandas
So konvertieren Sie eine kategoriale Variable in Pandas in eine numerische Variable
So konvertieren Sie boolesche Werte in Pandas in ganzzahlige Werte