标签对多个类别值进行编码

2024-06-01 07:51:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我的y峎u列车由多种成分组成。每种成分都由逗号分隔的不同成分组成。它基本上是一个多类分类问题。我的火车看起来像这样

df['ingredients_str'].head()

0    romaine lettuce,black olives,grape tomatoes
1    plain flour,ground pepper,salt,tomatoes
2    eggs,pepper,salt,mayonaise,cooking oil
3    water,vegetable oil,wheat,salt
4    black pepper,shallots,cornflour,cayenne
Name: ingredients_str, dtype: object

我尝试用sklearn label encoder对分类变量进行编码。在

^{pr2}$

如何在labelencoder中转换该列?在


Tags: df分类headsaltblack成分逗号oil
1条回答
网友
1楼 · 发布于 2024-06-01 07:51:19

你想在每个单元格中检索标签编码标签的列表。为此,您可以取消标签列的层数,处理每个列,然后将输出数据帧重新压缩为一列。在

labels = pd.DataFrame(df.str.split(',').values.tolist()).fillna('')
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit([item for sublist in labels.values for item in sublist])
labels = pd.DataFrame(np.transpose([le.transform(labels[col]) for col in labels.columns]))
labels.apply(lambda x: [list(x)])

0    [[12, 11, 6, 17, 2]]
1    [[1, 8, 10, 16, 14]]
2    [[7, 13, 13, 18, 5]]
3     [[0, 15, 9, 13, 3]]
4       [[0, 0, 4, 0, 0]]
dtype: object

相关问题 更多 >