0

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

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

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

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

4

1 回答 1

0

我认为您正在寻找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)
于 2020-04-24T12:22:35.497 回答