У меня есть dataframe:
ga_deviceCategory_codes ga_channelgrouping_codes ga_sourceMedium_codes
1.0 6.0 9.0
1.0 6.0 9.0
Который я преобразовал в категориальные коды из категориальных значений, используя:
data['ga_deviceCategory_codes'] = data['ga_deviceCategory'].astype('category').cat.codes
data['ga_channelgrouping_codes'] = data['ga_channelgrouping'].astype('category').cat.codes
data['ga_sourceMedium_codes'] = data['ga_sourceMedium'].astype('category').cat.codes
Как я могу вернуться к исходным категориальным значениям теперь из приведенных выше кодов?
Сопоставления категорий хранятся внутри Pandas, но не как обычный словарь Python. Вы можете создать такой словарь самостоятельно для отображения назад:
df['mycol'] = df['mycol'].astype('category')
d = dict(enumerate(df['mycol'].cat.categories))
Затем отложите карту назад:
df['mycol_codes'] = df['mycol'].cat.codes
df['mycol_reversed'] = df['mycol_codes'].map(d)
Будьте осторожны с этим методом. Убедитесь, что вы создали словарь сразу после преобразования в категории. При конкатенации данных с категориальными рядами вы можете найти изменения картографирования.
не 100% на то, что вы просите, но вы пробовали например:
data['ga_sourceMedium_codes'].cat.categories
AttributeError: Can only use .cat accessor with a 'category' dtype
@ Андреем