今天遇到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比较实用!
这里只是为了说明,举了一个简单的列表说明,在pandas里面的话,这个方法的用处会更大一些,大家可以去试试!
作者:采星星的小太阳BavaLI
链接:https://www.jianshu.com/p/e276848b9115
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。