pandas数据离散化

《pandas数据离散化》

简介

有时候便于分析数据,我们需要将连续型的数据划分开,也就是离散化。比如:统计人员的年龄分布,需要划分几个档次等,然后就可以做柱状图或者直方图。可以通过pandas的cut()qcut()函数实现,接下来一一介绍。

cut()函数

该函数的使用方法如下:

在上面的例子中,我们有一些人的年龄,需要将他们划分到各自的年龄段bin当中。在这里有四个年龄段(0, 18] ,(18, 30] ,(30, 50] ,(50, 100],返回的结果是一个属于各个区间的Categorical对象。使用categories属性可以获的区间形式:

需要注意的一点,默认的区间是左开右闭的,可以通过right=False修改:

我们还可以设置区间的名称,使用labels参数指定一个名称列表:

labels参数如果设置成False,就会返回一个表示区间的整数索引:

整数索引0表示[0, 18),以此类推。

我们也可以不用传入划分的区间形式,可以直接指定数量:

在这里,我们指定划分4个区间,程序会自动计算总长度然后平均。通过retbins=True能够获得划分的数组。

qcut()函数

该函数跟cut()类似,只是它是根据样本的分位数对数据划分,也就是说保证在每个区间中含有的数量相同。比如:

可以看出,该函数根据数据长度,自动划分了4个区域,每个区域的数据数量是相同的:

我们也可以指定样本分位数:

总结

本文讲了两个将连续数据离散化的函数cut()qcut(),前者根据样本间距划分,样本数量可以不同;后者根据样本分位数划分,每个间距的样本数一样多。在后面的聚合和分组运算中,我们还会讲到这两个函数的应用。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

18 − 8 =