1. 程式人生 > >python cut和qcut的用法以及區別

python cut和qcut的用法以及區別

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)