Скажите, у меня есть следующий фрейм данных.
df = pd.DataFrame({'col1':[1,2,3,4,5], 'col2':list('abcab'), 'col3':list('ababb')})
Я могу преобразовать категориальные данные в целые числа, выполнив следующие действия.
df['col2'] = df['col2'].astype('category')
df['col3'] = df['col3'].astype('category')
cat_columns = df.select_dtypes(['category']).columns
df[cat_columns] = df[cat_columns].apply(lambda x: x.cat.codes)
В конце этого преобразования, когда я печатаю (df.dtypes), я получаю
col1 int64
col2 int8
col3 int8
Вся категориальная информация отсутствует. Могу ли я сохранить сопоставление категории с целым числом в файле? Я хочу иметь возможность программно инвертировать преобразование на фрейме данных в будущем.
РЕДАКТИРОВАТЬ: Я ищу обратимый процесс. Таким образом, это означает сохранение в реальном файле преобразований для всех категориальных столбцов. Когда-нибудь в будущем я захочу получить любые результаты, которые у меня есть, когда столбцы будут иметь то же имя, что и исходный кадр данных, выполнить обратное преобразование с использованием сохраненной информации и получить результаты в виде категориальных данных.