Используйте одинаковые критерии маркировки категорий на двух разных фреймах данных
У меня есть 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)