我可以将分类列转换为它们的分类代码,但是如何获得其映射的准确图片?
例:
df = pd.DataFrame({'col1':[1,2,3,4,5], 'col2':list('abcab'), 'col3':list('ababb')})
找到不是数字的列
df_not_num = df.select_dtypes(exclude = [np.number,np.int16,np.bool,np.float32] )
not_num_cols = list(df_not_num)
>>> ['col2','col3']
接下来,我创建第一个数据帧的副本,以便将类别引用到其代码中,并对两个数据帧进行分类.
df_labels = df.copy()
for col in not_num_cols:
df_labels[col] = df_labels[col].astype('category')
df[col] = df[col].astype('category')
df[col] = df[col].cat.codes
df现已分类并已编码.
df
col1 col2 col3
1 0 0
2 1 1
3 2 0
4 0 1
5 1 1
如何准确将猫代码映射到猫类?
下面的stackoverflow响应表示枚举类别.但是,我不确定枚举是否是cat.codes生成整数值的方式.有更准确的方法吗?
>>> dict( enumerate(df.five.cat.categories) )
{0: 'bad', 1: 'good'}
以上述格式获得映射的准确方法是什么?