Panda's: hoe factorize() te gebruiken om tekenreeksen als getallen te coderen
De functie pandas factorize() kan worden gebruikt om tekenreeksen als numerieke waarden te coderen.
U kunt de volgende methoden gebruiken om de functie factorize() toe te passen op de kolommen van een pandas DataFrame:
Methode 1: Factoreer een kolom
df[' col1 '] = pd. factorize (df[' col '])[0]
Methode 2: Factorspecifieke kolommen
df[[' col1 ', ' col3 ']] = df[[' col1 ', ' col3 ']]. apply ( lambda x: pd.factorize (x)[ 0 ])
Methode 3: Factoreer alle kolommen
df = df. apply ( lambda x: pd.factorize (x)[ 0 ])
In het volgende voorbeeld ziet u hoe u elke methode kunt gebruiken met de volgende panda’s DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' conf ': ['West', 'West', 'East', 'East'], ' team ': ['A', 'B', 'C', 'D'], ' position ': ['Guard', 'Forward', 'Guard', 'Center'] }) #view DataFrame df conf team position 0 West A Guard 1 West B Forward 2 East C Guard 3 East D Center
Voorbeeld 1: ontbind een kolom in factoren
De volgende code laat zien hoe u een kolom in het DataFrame factoreert:
#factorize the conf column only df[' conf '] = pd. factorize (df[' conf '])[ 0 ] #view updated DataFrame df conf team position 0 0 A Guard 1 0 B Forward 2 1 C Guard 3 1 D Center
Merk op dat alleen de kolom ‚conf‘ in aanmerking is genomen.
Elke waarde die ‚West‘ was, is nu 0 en elke waarde die ‚Oost‘ was, is nu 1.
Voorbeeld 2: Factorspecifieke kolommen
De volgende code laat zien hoe u specifieke kolommen in het DataFrame kunt factoriseren:
#factorize conf and team columns only df[[' conf ', ' team ']] = df[[' conf ', ' team ']]. apply ( lambda x: pd.factorize (x)[ 0 ]) #view updated DataFrame df conf team position 0 0 0 Guard 1 0 1 Forward 2 1 2 Guard 3 1 3 Center
Merk op dat de kolommen “conf” en “team” beide in aanmerking zijn genomen.
Voorbeeld 3: Factoreer alle kolommen
De volgende code laat zien hoe u alle kolommen in het DataFrame kunt factoriseren:
#factorize all columns df = df. apply ( lambda x: pd.factorize (x)[ 0 ]) #view updated DataFrame df conf team position 0 0 0 0 1 0 1 1 2 1 2 0 3 1 3 2
Houd er rekening mee dat alle kolommen zijn meegerekend.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Hoe Pandas DataFrame-kolommen naar strings te converteren
Hoe een categorische variabele naar numeriek te converteren in Pandas
Hoe Pandas DataFrame-kolommen naar geheel getal worden geconverteerd