python cut和qcut的用法以及區別
阿新 • • 發佈:2019-02-16
from pandas import Series,DataFrame import pandas as pd import numpy as np from numpy import nan as NA from matplotlib import pyplot as plt ages = [20,22,25,27,21,23,37,31,61,45,41,32] #將所有的ages進行分組 bins = [18,25,35,60,100] #使用pandas中的cut對年齡資料進行分組 cats = pd.cut(ages,bins) #print(cats) #呼叫pd.value_counts方法統計每個區間的個數 number=pd.value_counts(cats) #print(pd.value_counts(cats)) #顯示第幾個區間index值 index=pd.cut(ages,bins).codes #print(index) #為分類出來的每一組年齡加上標籤 group_names = ["Youth","YouthAdult","MiddleAged","Senior"] personType=pd.cut(ages,bins,labels=group_names) #print(personType) plt.hist(personType) #plt.show() #cut和qcut的用法 data=[1,2,3,4,5,6,7,8,9,10] result=pd.qcut(data,4) print(' ',result)##qcut會將10個數據進行排序,然後再將data資料均分成四組 #統計落在每個區間的元素個數 print('dasdasdasdasdas: ',pd.value_counts(result)) #qcut : 跟cut一樣也可以自定義分位數(0到1之間的數值,包括端點) results=pd.qcut(data,[0,0.1,0.5,0.9,1]) print('results: ',results)
import numpy as np import pandas as pd data = np.random.rand(20) print(data) #用cut函式將一組資料分割成n份 #cut函式分割的方式:資料裡的(最大值-最小值)/n=每個區間的間距 #利用資料中最大值和最小值的差除以分組數作為每一組資料的區間範圍的差值 result = pd.cut(data,4,precision=2) #precision保留小數點的有效位數 print(result) res_data=pd.value_counts(result) print(res_data)