Категориальный тип - это процесс факторизации. Это означает, что каждому уникальному значению или категории дается увеличенное целое значение, начиная с нуля.
Например:
c = language.lang.astype('category')
У вас есть коды в
codes = c.cat.codes
И категории в
cats = c.cat.categories
Он предназначен для того, чтобы вы могли использовать нарезку массивов Numpy, и вы можете получить доступ к вашим ярлыкам или категориям через
cats[codes]
Index(['english', 'spanish', 'spanish', 'english', 'english', 'spanish',
'spanish', 'spanish'],
dtype='object')
Нет необходимости создавать словарь для его поиска, когда вам уже дана конструкция для его эффективного поиска.
В качестве следующего примера, мы можем воспроизвести с помощью pd.factorize
codes, cats = pd.factorize(language.lang)
print(cats, codes, cats[codes], sep='\n\n')
Index(['english', 'spanish'], dtype='object')
[0 1 1 0 0 1 1 1]
Index(['english', 'spanish', 'spanish', 'english', 'english', 'spanish',
'spanish', 'spanish'],
dtype='object')