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

你可能感兴趣的:(#,pandas)