Используйте одинаковые критерии маркировки категорий на двух разных фреймах данных

У меня есть dataFrame, содержащий категориальную функцию, которую я закодировал следующим образом:

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

Если я применяю тот же код, что и выше, к другому фрейму данных с тем же полем категории, отображение перетасовывается, но мне нужно, чтобы оно согласовывалось с первым фреймом данных.

Есть ли способ успешно применить такое же сопоставление category:label в другой фрейм данных с такими же категориальными значениями?

1 ответ

Решение

Я думаю ты ищешь 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)
Другие вопросы по тегам