python--pandas 分位数

搞懂箱形图分析,快速识别异常值!

  1. pandas 分位数
    df.quantile(q=0.75)
    计算分位数: p o s = 1 + ( n − 1 ) ∗ q pos = 1+(n-1)*q pos=1+(n1)q
    p o s = i n t e g e r + f l o a t ( 整 数 部 分 + 小 数 部 分 ) pos = integer + float(整数部分 + 小数部分) pos=integer+float+
 ans = df[integer-1] + float * (df[integer] - df[integer - 1])

举个例子:
定义一个DataFrame

df = pd.DataFrame({'key1':np.arange(0,6),
                  'key2':np.arange(6,12)})
print(df)
key1  key2
0     0     6
1     1     7
2     2     8
3     3     9
4     4    10
5     5    11
  • 通过函数直接求出结果
df.quantile(q=0.75)
key1    3.75
key2    9.75
Name: 0.75, dtype: float64
  • 通过给出的公式求:
import math
q = 0.75
pos = 1 + (len(df) - 1) * q
ret,integer = math.modf(pos)#求出分位的小数部分和整数部分
print('整数部分是%f,小数部分是%f'%(integer,ret))
ans = df['key1'][int(integer)-1] + ret * (df['key1'][int(integer)] - df['key1'][int(integer)-1])
print('key1 ',ans)
ans2 = df['key2'][int(integer)-1] + ret * (df['key2'][int(integer)] - df['key2'][int(integer)-1])
print('key2 ',ans2)
整数部分是4.000000,小数部分是0.750000
key1 3.75
key2 9.75
  • 10
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值