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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert