转换为分类值的分类代码

问题描述 投票:0回答:4

我是从分类值转换为分类代码的,使用:

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

我现在如何从上述代码回到原始的分类值?

类别映射是由大熊猫内部存储的,但不是作为常规的python词典存储。您可以自己创建这样的词典来向后映射:

df['mycol'] = df['mycol'].astype('category') d = dict(enumerate(df['mycol'].cat.categories))
python pandas dictionary dataframe categorical-data
4个回答
10
投票
然后向后地图:

df['mycol_codes'] = df['mycol'].cat.codes df['mycol_reversed'] = df['mycol_codes'].map(d)
谨慎使用这种方法。转换为类别后,请确保直接创建字典。将数据框与分类系列串联时,您可能会发现映射更改。
    

您可以做到以下操作:
df['col'] = df['col'].astype('category')
my_list = df['col'].cat.codes
my_values = df['col'].tolist()
result= dict(zip(my_list,my_values))

首先将目标列转换为“类别”类型,然后使用.cat.codes在其上进行标签编码。然后,在代码的第3行中,创建了目标列的真实值列表,在ZIP第4行中,CAT。编码和相关的真实值所实现的每个值都被视为dict的元素。

1
投票

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

data['ga_sourceMedium_codes'].cat.categories


0
投票

Assume您有一个分类系列,您将其转换为一系列代码:

ser = df['col'].astype('category') categorical = ser.dtype ser_codes = ser.cat.codes

然后您可以转换回原始分类系列,如下:


0
投票

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.