这章学的是分类。
cat对象
通过cat对象的categories属性能够完成对类别的查询。
有序分类
有序类别和无序类别可以通过 as_unordered 和 reorder_categories 互相转化。
只需把列的类型修改为 category 后,再赋予相应的大小关系,就能正常地使用 sort_index 和 sort_values 。
区间序列通过cut和qcut构造。
练习
Ex1
这道题没有太弄懂,照着答案打了一遍。
Ex2
-
分别对 df.cut 在 object 类型和 category 类型下使用 nunique 函数,并比较它们的性能。
通过对比可以发现,category完胜。
-
钻石的切割质量可以分为五个等级,由次到好分别是 Fair, Good, Very Good, Premium, Ideal ,纯净度有八个等级,由次到好分别是 I1, SI2, SI1, VS2, VS1, VVS2, VVS1, IF ,请对切割质量按照 由好到次 的顺序排序,相同切割质量的钻石,按照纯净度进行 由次到好 的排序。
分别对cut,clarity分为5个等级和8个等级。再重排序。
-
分别采用两种不同的方法,把 cut, clarity 这两列按照 由好到次 的顺序,映射到从0到n-1的整数,其中n表示类别的个数。
用category的codes替换。使用replace替换也可。
-
对每克拉的价格按照分别按照分位数(q=[0.2, 0.4, 0.6, 0.8])与[1000, 3500, 5500, 18000]割点进行分箱得到五个类别 Very Low, Low, Mid, High, Very High ,并把按这两种分箱方法得到的 category 序列依次添加到原表中。
将每克拉价格作为分箱序列bins,用cut传入bins,再添加labels重命名。
-
第4问中按照整数分箱得到的序列中,是否出现了所有的类别?如果存在没有出现的类别请把该类别删除。