将分类代码转换为分类值

时间:2018-08-28 13:38:17

标签: python pandas dictionary dataframe categorical-data

我有一个数据框:

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 :(得分:1)

类别映射由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)

请谨慎使用此方法。确保转换为类别后立即创建字典。在将数据帧与分类序列串联时,您可能会发现映射更改。

答案 1 :(得分:0)

不是您要问的100%,但是您是否尝试过例如:

data['ga_sourceMedium_codes'].cat.categories