概念
分位数就是可以
将数据
等分
若干份的数
举例
一组数据
11,33,22,66,55,77
从小到大排序后
11,22,33,55,66,77
求概率为q的分位数
q : float or array-like, default 0.5 (50% quantile)
0 <= q <= 1, the quantile(s) to compute.
-
第一种情况
按照指定概率点(0.4),我们要在这组数据中找到一个数,小于该数的数至少占总数的40%,大于该数的数至多占总数的60%
因为这组数据有6个数,所以 设中位数为x- <=x的个数6*40%=2.4 取3 [11,22,33] 取33
- >x的个数6*60%=3.6个学生,取整4个[33,55,66,77]取33
两个的交集刚好是数33,所以33是分位数
-
第二种情况
- <=x的个数6*50%=3 取3个[11,22,33] 取33
- >x 的个数6%50%=3 取3个[55,66,77] 取55
不同则取平均数即(33+55)/2=44
python 示例
import pandas as pd
quantile_count=[11,33,22,66,55,77]
quantile_mapping= pd.qcut(quantile_count,2,labels=False)
print("quantile count data")
print(quantile_count)
print("quantile mapping")
print(quantile_mapping)
#将一维数据转成一列矩阵
print("series")
series=pd.Series(quantile_count)
print(series)
quantile_result=series.quantile([0.1,0.2,0.3,0.4,0.5])
print("quantile result")
print(quantile_result)
运行结果
quantile count data
[11, 33, 22, 66, 55, 77]
quantile mapping
[0 0 0 1 1 1]
series
0 11
1 33
2 22
3 66
4 55
5 77
dtype: int64
quantile result
0.1 16.5
0.2 22.0
0.3 27.5
0.4 33.0 *
0.5 44.0 *
dtype: float64
网友评论