Python学习笔记:利用pd.quantile实现分位数统计

Python学习笔记:利用pd.quantile实现分位数统计,第1张

概述一、p分位数概念原则上p是可以取0-1之间的任意值,四分位数是p分位数中较为有名的。所谓四分位数:即把数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。第1四分位数(Q1):又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字第2四分位数(Q2 一、p分位数概念

原则上p是可以取0-1之间的任意值,四分位数是p分位数中较为有名的。

所谓四分位数:即把数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。

第1四分位数 (Q1):又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字第2四分位数 (Q2):又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字第3四分位数 (Q3):又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字

第3四分位数与第1四分位数的差距又称四分位距(InterQuartile Range, iqr)

二、pandas中quantile函数

quantile() 函数语法为:

DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpolation='linear')

参数解释:

q -- 浮点数或者数组,默认值0.5,取中位数(0 ≤ q ≤ 1)axis -- 行或列,默认为0,取值为:{0, 1, ‘index’, ‘columns’}        0 or ‘index’ -- 行        1 or ‘columns’ -- 列interpolation -- 插值方法,取值为:{‘linear’, ‘lower’, ‘higher’, ‘mIDpoint’, ‘nearest’}当选中的分位点位于两个数数据点 i and j 之间时:    linear: i + (j - i) * fraction, fraction由计算得到的pos的小数部分    lower: i.    higher: j.    nearest: i or j whichever is nearest.    mIDpoint: (i + j) / 2.
三、实例
# 测试数据df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]),columns=['a', 'b'])'''   a    b0  1    11  2   102  3  1003  4  100'''# 0.1分位数df.quantile(0.1)a    1.3b    3.7name: 0.1, dtype: float64# 0.5分位数(中位数)df.quantile(0.5)a     2.5b    55.0name: 0.5, dtype: float64
# 测试数据    age  sex0  54.0  男  1  39.0  男  2  59.0  男  3  59.0  男  4  52.0  男  # 求分位数data.age.quantile([0.25, 0.5, 0.75])0.25    35.00.50    45.00.75    54.0name: age, dtype: float64
四、应用

在数据清洗过程中,可以利用分位数实现对异常数据的剔除。

盖帽法
# 盖帽法def blk(floor, root):     def f(x):               if x < floor:            x = floor        elif x > root:            x = root        return x    return f
清洗
data["col"] = data["col"].map(blk(0, root=data["col"].quantile(0.99))) 
缺失值填充
data["col"] = data["col"].fillna(0)

注意,需先通过盖帽法完成异常数据清洗后,再进行缺失值填充。

参考链接1:pandas中的quantile函数

参考链接2:p分位函数(四分位数)概念与pandas中的quantile函数

总结

以上是内存溢出为你收集整理的Python学习笔记:利用pd.quantile实现分位数统计全部内容,希望文章能够帮你解决Python学习笔记:利用pd.quantile实现分位数统计所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1186693.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存