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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *