四分位数计算以及使用pandas计算

Posted yangzhen-ahujhc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四分位数计算以及使用pandas计算相关的知识,希望对你有一定的参考价值。

最近学习python数据分析,遇到了四分位数计算问题,因四分位数计算公式不一致,导致结果不一样,坑爹的百度只给了一种计算方法,容易迷惑初学者,故总结如下:

计算方法
三个四分位数的确定:
先按从小到大方法排序,然后使用下列方法。
方法1:n+1
  Q1的位置= (n+1) × 0.25
  Q2的位置= (n+1) × 0.5
  Q3的位置= (n+1) × 0.75
  n表示数据的数据个数。

  上面的是大家常用的n+1法。还有一种是n-1法
方法2:n-1法
  Q1的位置=1+(n-1)x 0.25
  Q2的位置=1+(n-1)x 0.5
  Q3的位置=1+(n-1)x 0.75

  当位置结果为小数时,则用两个位置上的数分别乘以小数和(1-小数)后相加。例如,当结果为6.25时,就用第六个位置的数*0.25+第七个位置的数*0.75后得到结果。

下面举例说明。

举例1(奇数个)假设有一组数据6,7,15,36,39,40,41,42,43,47,49。此数据已按从小到大顺序拍寻,因此不需要再排序,如未拍寻,需先进行排序。

1、下面根据公式(n+1)法计算

  第一四分位数(下四分位数):(11+1)/4 =3,说明它在第三个位置,所以是15,即Q1=15。

  中位数:(11+1)/4*2=6,所以是40。

  第三四分位数(上四分位数):(11+1)/4*3=9, 所以是43。

  至此,Q1=15,Q2=40,Q3=43。

2、下面根据公式(n-1)法计算
  第一四分位数(下四分位数):1+(11-1)x 0.25 =3.5,则Q1=15x0.5+36x0.5=25.5
  中位数:1+(11-1)x 0.5 =6,则Q2=15x0.5+36x0.5=40
  第三四分位数(上四分位数):1+(11-1)x 0.75 =8.5,则Q3=42x0.5+43x0.5=42.5
下面用python实现计算。

1 import pandas as pd
2 s1 = pd.Series([6,7,15,36,39,40,41,42,43,47,49])
3 s1.describe()

结果如下:

count    11.000000
mean     33.181818
std      15.873362
min       6.000000
25%      25.500000
50%      40.000000
75%      42.500000
max      49.000000
dtype: float64

可见,python运行出来的结果是Q1=25.5 Q2=40 Q3=42.5。

运行结果与n-1法一样,说明python用的是这种方法。

举例2(偶数个)

1 import numpy as np
2 import pandas as pd
3 ser_obj=pd.Series([1,2,3,4,5,6])
4 ser_obj.describe()

1、下面根据公式(n+1)法计算

  第一四分位数(下四分位数):(6+1)/4 =1.75,说明它在第1.75位置,所以是1*0.25+2*0.75,即Q1=1.75。

  中位数:(6+1)/4*2=3.5,所以是3*0.5+4*0.5=3.5。

  第三四分位数(上四分位数):(6+1)/4*3=5.25, 所以是5*0.75+6*0.25=5.25。

  至此,Q1=1.75,Q2=3.5,Q3=5.25。

2、下面根据公式(n-1)法计算
  第一四分位数(下四分位数):1+(6-1)x 0.25 =2.25,则Q1=2x0.75+3x0.25=2.25
  中位数:1+(6-1)x 0.5 =3.5,则Q2=3x0.5+4x0.5=3.5
  第三四分位数(上四分位数):1+(6-1)x 0.75 =4.75,则Q3=4*0.25+5*0.75=4.75
  下面用python实现计算。

count    6.000000
mean     3.500000
std      1.870829
min      1.000000
25%      2.250000
50%      3.500000
75%      4.750000
max      6.000000

  因此,pandas使用的是n-1法,人们通常使用n+1法。


以上是关于四分位数计算以及使用pandas计算的主要内容,如果未能解决你的问题,请参考以下文章

什么是分位数,如何计算分位数?

如何计算第一和第三四分位数?

四分位数计算方法

pandas使用

R语言IQR函数计算四分位数范围IQR(Interquartile Range)实战

分位数如何计算?