我有一个数据集,它包含多个列,这些列的值是字符串格式的。现在我需要使用labelEncoder将这些文本列转换为数值。在下面的例子中,y是我的tain数据集的目标,A0到A13是不同的特征。还有50个特性,但我在这里提供了一个子集。现在,我如何将labelencoder应用于从A0到A8的数据集,并为创建模型创建一个新的编码数据帧?我知道我们可以像下面这样做,但这会说只编码一列。我希望编码器应用于从A0到A8的所有列,然后将数据提供给模型。我该怎么做?
from sklearn.preprocessing import LabelEncoder
gender_encoder = LabelEncoder()
y = gender_encoder.fit_transform(y)
下面是示例数据
y A0 A1 A2 A3 A4 A5 A6 A8 A10 A12 A13
0 130.81 k v at a d u j o 0 0 1
1 88.53 k t av e d y l o 0 0 0
2 76.26 az w n c d A j A 0 0 0
3 80.62 az t n f d A l e 0 0 0
4 78.02 az v n f d h d n 0 0 0
您可以使用列转换器和管道对所有分类列进行编码。之后还可以为数值列添加转换。
categorical_features = ['A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A8']
categorical_transformer = Pipeline(steps=[('le', LabelEncoder())])
preprocessor = ColumnTransformer(transformers=[('cat',
categorical_transformer,
categorical_features)])
pipeline = Pipeline(steps=[('preprocessor', preprocessor)])
pipeline.fit(X_train)
您可以使用来自skLearning的列变压器:
from sklearn.compose import make_column_transformer
from sklearn.preprocessing import OneHotEncoder
col_trans = make_column_transformer((OneHotEncoder(), ["A0:A8"]), remainder = "passthrough")
您可以在[]中列出各个列,并指定如何处理“剩余列”
问题内容: 我正在尝试使用来编码一大串字符串标签。由于数据框有许多(50+)列,因此我想避免为每一列创建一个对象。我宁愿只有一个可以在我所有数据列中使用的大对象。 将整个数据投入会产生以下错误。请记住,我在这里使用伪数据。实际上,我正在处理大约50列的字符串标记数据,因此需要一种不按名称引用任何列的解决方案。 追溯(最近一次通话最近):文件中的行1,在第y行中= 中的第306行文件引发(“错误的输
我正在尝试使用Scikit-Learn的来编码字符串标签的pandas。由于dataframe有许多(50+)列,我希望避免为每个列创建对象;我宁愿只有一个大的对象,它可以跨我的所有数据列工作。 将整个抛入会产生以下错误。请记住,我在这里使用的是虚拟数据;实际上,我正在处理大约50列字符串标记的数据,因此需要一个不引用任何列名称的解决方案。 回溯(最近一次调用):文件“”,第1行,在文件“/use
我的目标是通过传入我想要共享分类值的列,使其输出如下所示:
我试图转换多个列,其中有一组分类值中的数据;但我在使用OneHotEncoder时遇到了一个错误 我的数据框 1) 分离X_普查和Y_普查中的列(X_普查包含分类值): 2)使用LabelEncoder处理X_census的分类值: 从sklearn。导入标签编码器的预处理 3)现在使用OneHotEncoder到我的X_2转换分类到数值: 错误
我有一个Pandas DataFrame列,其中包含一个列表中的多个列表。类似于这样: 我想将列表拆分为多列,因此输出应该是这样的: 请帮我做这件事。预先感谢
我一直在寻找通过python文档和论坛来选择列的方法,但是关于列索引的每个示例都过于简单。 假设我有一个10x10的数据帧 到目前为止,给出的所有文档只是一个简单的索引示例,如