pandas的qcut()方法

pandas的qcut能够把一组数字按大小区间进行分区,好比spa

data = pd.Series([0,8,1,5,3,7,2,6,10,4,9])

好比我要把这组数据分红两部分,一半大的,一半小的,若是是小的数,值就变成'small number',大的数,值就变成'large number':code

print(pd.qcut(data,[0,0.5,1],labels=['small number','large number']))
0     small numbers
1     large numbers
2     small numbers
3     small numbers
4     small numbers
5     large numbers
6     small numbers
7     large numbers
8     large numbers
9     small numbers
10    large numbers
dtype: category
Categories (2, object): [small numbers < large numbers]

 qcut() 方法第一个参数是数据,第二个参数定义区间的分割方法,好比这里把数字分红两半,那就是 [0, 0.5, 1] 若是要分红4份,就是 [0, 0.25, 0.5, 0.75, 1] ,也能够不是均分,好比 [0, 0.1, 0.2, 0.3, 1] ,这就就会按照 1:1:1:7 进行分布,好比:blog

data = pd.Series([0,8,1,5,3,7,2,6,10,4,9])
print(pd.qcut(data,[0, 0.1, 0.2, 0.3, 1],labels=['first 10%','second 10%','third 10%','70%']))
0      first 10%
1            70%
2      first 10%
3            70%
4      third 10%
5            70%
6     second 10%
7            70%
8            70%
9            70%
10           70%
dtype: category Categories
(4, object): [first 10% < second 10% < third 10% < 70%]

固然,这里由于数据里有11个数,无法恰好按照 1:1:1:7 分,因此 0和1,都被分到了 'first10%' 这一类.pandas

 qcut() 方法第二个参数是要替换的值,就是对应区间的值应该替换成什么值,顺序和区间保持一致就行了,注意有几个区间,就要给几个值,不能多也不能少.class

相关文章
相关标签/搜索