如何使用Sk learn OneHotEncoder对数据帧中的两列或多列进行编码



这是我的数据帧

我想使用sklearn OneHotEncoder和Column Transformer对2列进行编码:行和名称。但是,我只能使用此代码对一列进行编码。

from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
X = new_df_cl.iloc[:,:-2].values
lines = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [4])], remainder='passthrough')
X = np.array(lines.fit_transform(X))

ColumnTransformer中转换器列表中元组的语法为

(name, transformer, columns)

其中CCD_ 3可以是列索引的列表。因此,如果要转换索引4和5处的列,请将列指定为[4, 5],如下所示:

ColumnTransformer(
transformers=[('encoder', OneHotEncoder(), [4, 5])],  # <-- here
remainder='passthrough'
)

最新更新