今天遇到pd.Categorical()这个方法,说实话以前自己没遇到过!现在把自己的理解清晰的给正在疑惑的小伙伴说明一下!
直接上代码
1.定义一个列表,注意里面有重复元素!
#定义一个列表,注意里面有重复元素!
str = ['a','a','b','c','c','e','h','g']
str
image.png
2.导如pandas包,并调用Categorical方法
# 导如pandas包,并调用Categorical方法
import pandas as pd
ss = pd.Categorical(str)
image.png
打印ss之后我们发现 Categories (6, object): [a, b, c, e, g, h]把我们的重复值去掉了,原来有8个现在才有六个,那么其余的是不是不在了呢?答案是:其余还在,只不过使用了另外一个表示方式!
ss.dtype
查看一下它到底谁是什么类型
image.png调用ss的两个重要属性!
image.png通过对比,细心的你,应该发现,原来的字母现在已经被数字所代替,而且用的是从0开始的索引,所以a对应0遇到重复的a同样用0表示,这样就可以把非数值的转换成数值的,方便计算!我觉得这就是这个方法的最大好处!
至于categories属性,可以看到原来的字母的去重后的情况!用处不大,主要还是codes比较实用!
网友评论