Преобразовать категориальные коды в категориальные значения - PullRequest
0 голосов
/ 28 августа 2018

У меня есть датафрейм:

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

Как мне теперь вернуться к исходным категориальным значениям из вышеуказанных кодов?

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Отображения категорий хранятся внутри 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)

Будьте осторожны с этим методом. Убедитесь, что вы создали словарь сразу после преобразования в категории. При объединении фреймов данных с категориальными рядами вы можете обнаружить изменения в отображении.

0 голосов
/ 28 августа 2018

не 100% на то, что вы спрашиваете, но вы пробовали, например:

data['ga_sourceMedium_codes'].cat.categories

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...