1. 程式人生 > >python 報ValueError: Bin labels must be one fewer than the number of bin edges

python 報ValueError: Bin labels must be one fewer than the number of bin edges

在對python資料進行離散化分析時,我想把年齡列進行分組,分成'20-35', '35-50', '50-65', '65-80','80-95','95-110'六組,但是執行時報出了錯誤ValueError: Bin labels must be one fewer than the number of bin edges,翻譯過來的意思是; 分組標籤必須比分組的邊界少一個

原碼是:
labels = ['20-35', '35-50', '50-65', '65-80','80-95','95-110']  #設定的標籤
bins=range(20,110,15)  #設定的分組條件,年齡範圍是20-110,每一組的間隔為15
use_data['age_group']=pd.cut(use_data.age,bins,right=False,labels=labels) #呼叫pandas裡的cut函式進行計算

錯誤分析:


因為110恰好是第六組[95,110)的右側邊緣,猜測可能在計算為了保證label裡的所有值都能夠包含在內,比如此時的值110就無法分類,所以會報故障,把110改成了111就可以了

修改後的程式:
labels = ['20-35', '35-50', '50-65', '65-80','80-95','95-110']
bins=range(20,111,15)
use_data['age_group']=pd.cut(use_data.age,bins,right=False,labels=labels)