Я пытаюсь преобразовать категориальное значение (в моем случае это столбец страны) в закодированное значение с помощью LabelEncoder, а затем с OneHotEncoder и смог преобразовать категориальное значение. Но я получаю предупреждение, как будто ключевое слово категорическое_разделение OneHotEncoder устарело: вместо этого используйте ColumnTransformer. Так как же я могу использовать ColumnTransformer для достижения того же результата?
Ниже мой набор входных данных и код, который я попробовал
Input Data set
Country Age Salary
France 44 72000
Spain 27 48000
Germany 30 54000
Spain 38 61000
Germany 40 67000
France 35 58000
Spain 26 52000
France 48 79000
Germany 50 83000
France 37 67000
import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
#X is my dataset variable name
label_encoder = LabelEncoder()
x.iloc[:,0] = label_encoder.fit_transform(x.iloc[:,0]) #LabelEncoder is used to encode the country value
hot_encoder = OneHotEncoder(categorical_features = [0])
x = hot_encoder.fit_transform(x).toarray()
И на выходе я получаю как, Как я могу получить тот же выход с трансформатором столбца
0(fran) 1(ger) 2(spain) 3(age) 4(salary)
1 0 0 44 72000
0 0 1 27 48000
0 1 0 30 54000
0 0 1 38 61000
0 1 0 40 67000
1 0 0 35 58000
0 0 1 36 52000
1 0 0 48 79000
0 1 0 50 83000
1 0 0 37 67000
я попробовал следующий код
from sklearn.compose import ColumnTransformer, make_column_transformer
preprocess = make_column_transformer(
( [0], OneHotEncoder())
)
x = preprocess.fit_transform(x).toarray()
мне удалось закодировать столбец страны с вышеуказанным кодом, но пропустив столбец возраста и зарплаты из переменной x после преобразования