Pandy: jak używać factorize() do kodowania ciągów znaków jako liczb


Funkcji pandasfactorize () można używać do kodowania ciągów znaków jako wartości numerycznych.

Aby zastosować funkcję faktoryzacji() do kolumn ramki DataFrame pandy, możesz użyć następujących metod:

Metoda 1: Rozłóż kolumnę na czynniki

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

Metoda 2: Kolumny specyficzne dla czynników

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

Metoda 3: Uwzględnij wszystkie kolumny

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

Poniższy przykład pokazuje, jak używać każdej metody z następującą ramką DataFrame pand:

 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

Przykład 1: Rozłóż kolumnę na czynniki

Poniższy kod pokazuje, jak uwzględnić kolumnę w ramce 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

Należy pamiętać, że uwzględniona została tylko kolumna „conf”.

Każda wartość, która była „Zachodem”, ma teraz wartość 0, a każda wartość, która była „Wschodem”, ma teraz wartość 1.

Przykład 2: Kolumny specyficzne dla współczynnika

Poniższy kod pokazuje, jak uwzględnić określone kolumny w ramce 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

Należy pamiętać, że kolumny „conf” i „team” zostały uwzględnione.

Przykład 3: Uwzględnij wszystkie kolumny

Poniższy kod pokazuje, jak rozłożyć na czynniki wszystkie kolumny w ramce 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

Należy pamiętać, że wszystkie kolumny zostały rozłożone na czynniki.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:

Jak przekonwertować kolumny Pandas DataFrame na ciągi
Jak przekonwertować zmienną kategorialną na numeryczną w Pandach
Jak przekonwertować kolumny Pandas DataFrame na liczbę całkowitą

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *