【问题标题】:How to Encode two or more columns in a dataframe using Sk-learn OneHotEncoder?如何使用 Sk-learn OneHotEncoder 对数据框中的两列或多列进行编码?
【发布时间】:2021-06-05 11:35:00
【问题描述】:

Here is my dataframe

我想使用 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))

【问题讨论】:

    标签: python pandas machine-learning scikit-learn encode


    【解决方案1】:

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

    (name, transformer, columns)

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

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

    【讨论】:

      猜你喜欢
      • 2020-02-26
      • 2021-11-16
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 2022-08-21
      • 2021-09-26
      相关资源
      最近更新 更多