pandas的qcut()方法

Posted liulangmao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas的qcut()方法相关的知识,希望对你有一定的参考价值。

pandas的qcut可以把一组数字按大小区间进行分区,比如

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

比如我要把这组数据分成两部分,一半大的,一半小的,如果是小的数,值就变成‘small number‘,大的数,值就变成‘large number‘:

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 进行分布,比如:

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%‘ 这一类.

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

 



以上是关于pandas的qcut()方法的主要内容,如果未能解决你的问题,请参考以下文章

Qcut Pandas:ValueError:Bin 边缘必须是唯一的

区别|Pandas-qcut( )与cut( )的区别

Python Pandas 使用 pd.qcut 创建新的 bin/bucket 变量

熊猫 groupby 和 qcut

pandas高级操作总结

pandas GroupBy上的方法apply:一般性的“拆分-应用-合并”