您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python-scikit-learn中跨多列的标签编码

Python-scikit-learn中跨多列的标签编码

你可以轻松地做到这一点,

df.apply(LabelEncoder().fit_transform)

编辑2:

在scikit-learn 0.20中,推荐的方法

OneHotEncoder().fit_transform(df)

因为OneHotEncoder现在支持字符串输入。使用ColumnTransformer可以仅将OneHotEncoder应用于某些列。

编辑:

由于这个答案是一年多以前的,并且产生了很多赞誉(包括赏金),所以我可能应该进一步扩大。

对于inverse_transform和transform,你必须做一点改动。

from collections import defaultdict
d = defaultdict(LabelEncoder)

这样,你现在将所有列保留LabelEncoder为字典。

# Encoding the variable
fit = df.apply(lambda x: d[x.name].fit_transform(x))

# Inverse the encoded
fit.apply(lambda x: d[x.name].inverse_transform(x))

# Using the dictionary to label future data
df.apply(lambda x: d[x.name].transform(x))
python 2022/1/1 18:24:16 有412人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶