Используйте одинаковые критерии маркировки категорий на двух разных фреймах данных - PullRequest
0 голосов
/ 24 апреля 2020

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

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

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

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

1 Ответ

0 голосов
/ 24 апреля 2020

Я думаю, что вы ищете 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)
...