在两个不同的数据框上使用相同的类别标签标准

Use same category labeling criteria on two different dataframes

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

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

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

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

我认为您正在寻找 pd.Series.map(),它使用具有 category: label 映射的字典将值从 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)