Pandas: como usar factorize() para codificar strings como números


A função pandas factorize() pode ser usada para codificar strings como valores numéricos.

Você pode usar os seguintes métodos para aplicar a função factorize() às colunas de um DataFrame do pandas:

Método 1: fatorar uma coluna

 df[' col1 '] = pd. factorize (df[' col '])[0]

Método 2: fatorar colunas específicas

 df[[' col1 ', ' col3 ']] = df[[' col1 ', ' col3 ']]. apply ( lambda x: pd.factorize (x)[ 0 ])

Método 3: fatorar todas as colunas

 df = df. apply ( lambda x: pd.factorize (x)[ 0 ])

O exemplo a seguir mostra como usar cada método com o seguinte DataFrame do pandas:

 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

Exemplo 1: fatorar uma coluna

O código a seguir mostra como fatorar uma coluna no DataFrame:

 #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

Observe que apenas a coluna ‘conf’ foi fatorada.

Todo valor que era “Oeste” agora é 0 e todo valor que era “Leste” agora é 1.

Exemplo 2: Fatorar colunas específicas

O código a seguir mostra como fatorar colunas específicas no DataFrame:

 #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

Observe que as colunas “conf” e “team” foram fatoradas.

Exemplo 3: fatorar todas as colunas

O código a seguir mostra como fatorar todas as colunas no DataFrame:

 #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

Observe que todas as colunas foram fatoradas.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:

Como converter colunas Pandas DataFrame em strings
Como converter uma variável categórica em numérica no Pandas
Como converter colunas Pandas DataFrame em inteiros

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *