python分箱的方法?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!
創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、成都小程序開發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立10年以來(lái),已經(jīng)為上1000+成都門窗定制各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)?,F(xiàn)在,服務(wù)的上1000+客戶與我們一路同行,見證我們的成長(zhǎng);未來(lái),我們一起分享成功的喜悅。
1、數(shù)據(jù)分箱
數(shù)據(jù)分箱技術(shù)在Pandas官方給出的定義:Bin values into discrete intervals,是指將值劃分到離散區(qū)間。好比不同大小的蘋果歸類到幾個(gè)事先布置的箱子中;不同年齡的人劃分到幾個(gè)年齡段中。
這種技術(shù)在數(shù)據(jù)處理時(shí)會(huì)很有用。
2、例子
我們先來(lái)看例子
import numpy as np import pandas as pd ages = np.array([5,10,36,12,77,89,100,30,1]) #年齡數(shù)據(jù) 1 2 3
現(xiàn)把數(shù)據(jù)劃分成 3 個(gè)區(qū)間,并打上老、中、青的標(biāo)簽。Pandas提供了易用的API,很容易就可以實(shí)現(xiàn)。
pd.cut(ages, 3, labels=['青','中','老']) 1
結(jié)果如下,一行代碼便實(shí)現(xiàn)。
[青, 青, 中, 青, 老, 老, 老, 青, 青] 1
cut在操作時(shí),統(tǒng)計(jì)了一維數(shù)組的最小、最大值,得到一個(gè)區(qū)間長(zhǎng)度,因?yàn)樾枰獎(jiǎng)澐?個(gè)區(qū)間,所以會(huì)得到三個(gè)均勻的區(qū)間,如下。
pd.cut(ages, 3 ) >>>區(qū)間如下: Categories (3, interval[float64]): [(0.901, 34.0] < (34.0, 67.0] < (67.0, 100.0]] 1 2 3 4
給定數(shù)據(jù)的最小值為1,區(qū)間默認(rèn)是左開右閉,所以為了囊括1,需要將最靠左的區(qū)間向左延長(zhǎng)0.1%(總區(qū)間長(zhǎng)度),默認(rèn)精度為小數(shù)點(diǎn)后3位。
3、函數(shù)原型
通過(guò)以上例子初步認(rèn)識(shí)cut后,再分析cut原型就比較容易。
參數(shù)含義如下:
x:被切分的類數(shù)組數(shù)據(jù),注意必須是1維;
bins:簡(jiǎn)單理解為分箱規(guī)則,就是桶。支持int 標(biāo)量、序列;
right:表示是否包含區(qū)間的右邊界,默認(rèn)包含;
labels:分割后的bins打標(biāo)簽;
retbins:表示是否將分割后的bins返回,默認(rèn)不返回。如為True,則:
array([ 0.901, 34. , 67. , 100. ])) 1 2 3 4 5 include_lowest :區(qū)間的左邊是開還是閉,默認(rèn)為開; duplicates;是否允許重復(fù)區(qū)間。raise:不允許,drop:允許。
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)python分箱的方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。