全文721字,阅读时间2分钟,点击蓝色字体关注公众号
先说三个事
第一,最近一次送书活动,中奖的五位同学名单,昨天已经提交到出版社,如有问题微信联系我。还是要感谢俊红兄的赞助,现在想了解购买此书的同学请参考:赠书 | 这次送排名第一的书!
第二,最近在找工作的同学,可以参考总结的号内完整推文:认真就能打动人:273篇干货资料汇总,文章富有体系,几乎都是原创。
第三,希望关注我的多给好看,让更多的同学加入进来,形成一个更大的技术社区,让技术氛围更加浓厚些。接下来,推送的每篇文章力求言简意赅,力求简短,以便使大家在最短时间内了解文章大概。瞬间,有种获得感和成就感。
步入正题
今天说说Python分析包中 qcut 这个API. 它的作用是根据值的频率来决定箱子的间隔,尽可能地满足样本在每个箱子的数量相等。
先看例子:
ages = np.array([5,10,36,12,77,89,100,30,1]) #年龄数据pd.qcut(ages, 3, labels=['青','中','老']).value_counts() #结果:青 3中 3老 3dtype: int64
可以看到,每个区间的样本数量都为3. 不过,qcut得到的三个区间长度就不一定相等了。这是和 cut 的最大区别,cut 切分的是等长区间。
# 这是qcut后到得到的三个区间:
Categories(3, interval[float64]): [(0.999, 11.333] < (11.333, 49.667] < (49.667, 100.0]]
很明显,区间长度是不等的。
qcut的函数原型与cut差不多,参考cut: 数据分箱技术在Python中实现-cut
系列第8篇原创。有帮助,点好看。