首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LabelEncoding大量的分类数据

LabelEncoding大量的分类数据
EN

Stack Overflow用户
提问于 2022-03-10 21:13:52
回答 1查看 73关注 0票数 0

我有一个有39个分类和27个数字特征的数据集。我试图对分类数据进行编码,并需要能够再次对每一列进行逆变换和调用转换。有比定义39个单独的LabelEncoder实例,然后对每个列分别定义fit_transform更漂亮的方法吗?

我觉得我错过了一些显而易见的东西,但我想不出!

代码语言:javascript
复制
enc = LabelEncoder
cat_feat = [col for col in input_df2.columns if input_df2[col].dtype == 'object']
cat_feat = np.asarray(cat_feat)

le1 =LabelEncoder()
le2 =LabelEncoder()
le3 =LabelEncoder()
...
#extended to le39

def label(input):
       input.iloc[:, 1] = le1.fit_transform(input.iloc[:, 1])
       input.iloc[:, 3] = le1.fit_transform(input.iloc[:, 3])
       input.iloc[:, 4] = le1.fit_transform(input.iloc[:, 4])
       ... 
       return input
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-10 21:27:21

DataFrame.apply就是为了这个。它将为dataframe的每一列(或每一行,如果您传递它axis=1)调用指定的函数:

代码语言:javascript
复制
encoders = []

def apply_label_encoder(col):
    le = LabelEncoder()
    encoders.append(le)
    le.fit_transform(col)
    return 

input_df.iloc[:, 1:] = input_df.iloc[:, 1:].apply(apply_label_encoder)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71430879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档