Функцию 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 в целые числа