Pandas: как использовать factorize() для кодирования строк как чисел
Функцию pandas Factorize() можно использовать для кодирования строк в числовые значения.
Вы можете использовать следующие методы, чтобы применить функцию Factorize() к столбцам DataFrame 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 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
Пример 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 в целые числа