首页 > 解决方案 > 在两个不同的数据框上使用相同的类别标签标准

问题描述

我有一个包含分类特征的数据帧,我用以下方式编码:

df['categorical_feature'] = df['categorical_feature'].astype('category')
df['labels'] = df['categorical_feature'].cat.codes

如果我在另一个具有相同类别字段的数据帧上应用与上面相同的代码,则映射将被打乱,但我需要它与第一个数据帧一致。

有没有办法成功地将相同的映射category:label应用于另一个具有相同分类值的数据帧?

标签: pandaslabel-encoding

解决方案


我认为您正在寻找pd.Series.map(),它将值从映射categorylabel使用具有category: label映射的字典。

创建映射字典:您可以结合使用字典推导来做到这一点zip,但也有其他方法可以做到这一点:

col = 'categorical_features'
mapping_dict = {k: v for k, v in zip(df[col], df[col].cat.codes}

现在您可以映射该category: label映射:

df['labels'] = df['categorical'].map(mapping_dict)

推荐阅读