Pandas

Pandas: как использовать factorize() для кодирования строк как чисел

В: Pandas

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

Вы можете использовать следующие методы для применения функции factorize() к столбцам в кадре данных pandas:

Метод 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 ])

В следующем примере показано, как использовать каждый метод со следующими пандами DataFrame:

import pandas as pd

#create DataFrame
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 в целые числа

Еще от кодкамп
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.