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() 方法第二個參數是要替換的值,就是對應區間的值應該替換成什么值,順序和區間保持一致就好了,注意有幾個區間,就要給幾個值,不能多也不能少.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM