使用sklearn进行一次热编码后,如何给出列名?

dss*_*dss 6 encoding scikit-learn one-hot-encoding

这是我的问题,希望有人能帮助我解决。

解释一下,我的数据集中有10多个类别列,每个列都有200-300个类别。我想将它们转换为二进制值。为此,我使用了第一个标签编码器将字符串类别转换为数字。标签编码器代码和输出如下所示。

在此处输入图片说明

在使用标签编码器之后,我再次使用了一个来自scikit-learn的Hot Encoder,它可以正常工作。但是问题是,我需要在一个热编码器之后添加列名。例如,A列在编码前具有分类值。A = [1,2,3,4,..]

编码后应该像这样

A-1,A-2,A-3

任何人都知道一种热编码后如何将列名分配给(旧列名-值名称或数字)。这是我的一种热门编码,它是输出的;

在此处输入图片说明

我需要带有名称的列,因为我训练了ANN,但是每次出现数据时,我都无法一次又一次地转换所有过去的数据。因此,我想每次仅添加新的。还是谢谢你

Tay*_*lrl 0

正如 @Vivek Kumar 提到的,您可以使用 pandas 函数get_dummies()而不是 OneHotEncoder。我想保留初始 DataFrame 的一个版本,因此我执行了以下操作;

import pandas as pd
DataFrame2 = pd.get_dummies(DataFrame)
Run Code Online (Sandbox Code Playgroud)