是否可以一次对多个选定的列进行编码?

我的大型数据框中有一个列列表,它们是分类的,我正在尝试对它们进行编码,因为我使用的一些算法不接受字符串(例如 knn)。


这是我的代码:


#encode categories

from sklearn.preprocessing import LabelEncoder

# LabelEncoder

le = LabelEncoder()

# dataImputed[catgoricalValues] = dataImputed[catgoricalValues].apply(le.fit_transform) #didn't work

dataImputed[catgoricalValues] = le.fit_transform(dataImputed[catgoricalValues].astype(str))

我收到此错误:


ValueError: y should be a 1d array, got an array of shape (490546, 11) instead.

我该怎么做才能仅对列表中的这些值进行编码catgoricalValues,同时在我的数据框中维护所有其他值?


冉冉说
浏览 105回答 1
1回答

一只甜甜圈

尝试这个:import pandas as pdfrom sklearn.preprocessing import LabelEncoderdef MultiLabelEncoder(columnlist,dataframe):    for i in columnlist:        labelencoder_X=LabelEncoder()        dataframe[i]=labelencoder_X.fit_transform(dataframe[i])MultiLabelEncoder(catgoricalValuesColumnNameList,dataImputed)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python