Pandas: як використовувати factorize() для кодування рядків як чисел


Функцію pandas factorize() можна використовувати для кодування рядків як числових значень.

Ви можете використовувати такі методи, щоб застосувати функцію factorize() до стовпців pandas DataFrame:

Спосіб 1. Розкладіть стовпець на множники

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

Спосіб 2. Факторні стовпці

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

Спосіб 3: Розкладіть усі стовпці на множники

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

У наступному прикладі показано, як використовувати кожен метод із такими pandas 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

Приклад 1: Розкладіть стовпець на множники

Наступний код показує, як розкласти стовпець у 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

Зауважте, що тільки стовпець ‘conf’ був розрахований на множники.

Кожне значення, яке було «Захід», тепер дорівнює 0, а кожне значення, яке було «Схід», тепер дорівнює 1.

Приклад 2: Стовпці для певних факторів

У наведеному нижче коді показано, як розкласти конкретні стовпці в 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

Зверніть увагу, що стовпці «conf» і «team» були розраховані на множники.

Приклад 3: розкласти всі стовпці на множники

Наступний код показує, як розкласти всі стовпці в 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

Зауважте, що всі стовпці розкладено на множники.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:

Як перетворити стовпці Pandas DataFrame на рядки
Як перетворити категоріальну змінну на числову в Pandas
Як перетворити стовпці Pandas DataFrame на ціле число

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *