web-dev-qa-db-fra.com

OneHotEncoder categorical_features déprécié, comment transformer une colonne spécifique

J'ai besoin de transformer le champ indépendant de la chaîne en notation arithmétique. J'utilise OneHotEncoder pour la transformation. Mon ensemble de données comporte de nombreuses colonnes indépendantes, dont certaines sont les suivantes:

Country     |    Age       
--------------------------
Germany     |    23
Spain       |    25
Germany     |    24
Italy       |    30 

Je dois encoder la colonne Pays comme

0     |    1     |     2     |       3
--------------------------------------
1     |    0     |     0     |      23
0     |    1     |     0     |      25
1     |    0     |     0     |      24 
0     |    0     |     1     |      30

Je réussis à obtenir la transformation du désir en utilisant OneHotEncoder comme

#Encoding the categorical data
from sklearn.preprocessing import LabelEncoder

labelencoder_X = LabelEncoder()
X[:,0] = labelencoder_X.fit_transform(X[:,0])

#we are dummy encoding as the machine learning algorithms will be
#confused with the values like Spain > Germany > France
from sklearn.preprocessing import OneHotEncoder

onehotencoder = OneHotEncoder(categorical_features=[0])
X = onehotencoder.fit_transform(X).toarray()

Maintenant, je reçois le message d'amortissement à utiliser categories='auto'. Si je le fais, la transformation est en cours pour toutes les colonnes indépendantes comme le pays, l'âge, le salaire, etc.

Comment réaliser la transformation sur la 0ème colonne du jeu de données uniquement?

10
Hassaan

J'ai eu le même problème et les éléments suivants ont fonctionné pour moi:

OneHotEncoder(categories='auto', sparse=False)

J'espère que cela t'aides

0
user1970528

Utilisez le code suivant: -

from sklearn.preprocessing import OneHotEncoder

from sklearn.compose import ColumnTransformer

columnTransformer = ColumnTransformer([('encoder', OneHotEncoder(), [0])], remainder='passthrough')

X = np.array(columnTransformer.fit_transform(X), dtype = np.str)

print(X)
0
Abhishek Chatterjee