最近学习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 importpandas as pd2 s1 = pd.Series([6,7,15,36,39,40,41,42,43,47,49])3 s1.describe()

结果如下:

count 11.000000mean33.181818std15.873362min6.000000

25% 25.500000

50% 40.000000

75% 42.500000max49.000000dtype: float64

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

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

举例2(偶数个)

1 importnumpy as np2 importpandas as pd3 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法。

python四分位数_四分位数计算以及使用pandas计算相关推荐

  1. python四分位数怎么算_四分位数计算以及使用pandas计算

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

  2. python 波动率_旧文:历史波动率的计算 (Python)

    按照豆粕期权的说明,挂盘基准价使用的波动率是按照波动率取期货合约90天的历史波动率 那么问题来了,如何计算波动率呢? 学过金融的朋友可能会觉得很容易,当然的确很容易.但是如果是从计算机等学科过来的朋友 ...

  3. 互信息python代码_转:标准化互信息NMI计算步骤及其Python实现

    标准化互信息NMI计算步骤 Python 实现 代码: ''' 利用Python实现NMI计算''' import math import numpy as np from sklearn impor ...

  4. 狗狗的年龄的python编程_狗狗的年龄是怎么计算的?

    展开全部 文/逗一会儿猫 为什么狗狗年龄只有短短的十几年?多少岁算是老龄犬?关于狗32313133353236313431303231363533e58685e5aeb931333433633338狗 ...

  5. 用计算机算四分位数间距,四分位数间距(IQR)公式与在线计算器_三贝计算网_23bei.com...

    输入用空格.制表符.回车符或(英文半角)逗号隔开的数据序列后点击计算,可求其元素数.从小到大排序.四分数位置.四分位数.四分位数间距等结果. 操作步骤:直接输入或复制记录表中的数据,粘贴到输入框,点击 ...

  6. python使用pandas计算dataframe中每个分组的分位数极差、分组数据的分位数极差(range)、使用groupby函数和agg函数计算分组的两个分位数

    python使用pandas计算dataframe中每个分组的分位数极差.分组数据的分位数极差(range).使用groupby函数和agg函数计算分组的两个分位数 目录

  7. python使用pandas计算dataframe中每个分组的极差、分组数据的极差(range)、使用groupby函数和agg函数计算分组的最大值和最小值

    python使用pandas计算dataframe中每个分组的极差.分组数据的极差(range).使用groupby函数和agg函数计算分组的最大值和最小值 目录

  8. python计算csv文件内的数据_Python利用pandas计算多个CSV文件数据值的实例

    功能:扫描当前目录下所有CSV文件并对其中文件进行统计,输出统计值到CSV文件 pip install pandas import pandas as pd import glob,os,sys in ...

  9. python pandas 条件求和_python 使用pandas计算累积求和的方法

    python 使用pandas计算累积求和的方法 使用pandas下的cumsum函数 cumsum:计算轴向元素累积加和,返回由中间结果组成的数组.重点就是返回值是"由中间结果组成的数组& ...

  10. python 隐含波动率_【BSM模型】用实际市场数据计算隐含波动率并验证波动率微笑...

    在Black-Scholes期权定价模型中,不能直接观察到的参数只有股票价格的波动率.波动率可以由历史数据进行估计,这是历史波动率.隐含波动率也是交易员非常关心的,隐含波动率是期权的市场价格中所包含的 ...

最新文章

  1. 基于癌症基因组学数据的miRNA 功能模块识别算法研究
  2. TCP/IP详解--第十八章
  3. SQL Server 数据库定时自动备份
  4. python实现顺序查找和哈希查找
  5. ADO.NET数据绑定 DataTabele
  6. 运行velocity的官方例子
  7. overflowhidden把内容遮住了怎么办_图片有水印怎么办?不用PS,有这4招就够了
  8. JavaCard概述
  9. js designMode contentEditable 编辑在线网页
  10. Python可视化数据------seaborn
  11. 解密昇腾AI处理器--DaVinci架构(控制单元)
  12. 用CSS Houdini画一片星空
  13. 联想小新air13装双系统_联想小新 Air 13IBK Pro 安装黑苹果Windows双系统教程
  14. 室内设计数据手册pdf_室内设计资料集pdf下载-室内设计资料集电子版pdf高清扫描版-东坡下载...
  15. Python函数式编程(fn)
  16. 你敢信?码农靠倒卖烂水果,融资上亿
  17. tiktok也会像Facebook一样封号吗?哪些行为会封号?
  18. 初识CMake,如何编写一个CMake工程(下)
  19. 上海亚商投顾:沪指震荡上行 大消费板块全线走强
  20. Basler 工业相机 Python开发采集数据、保存照片

热门文章

  1. 【新浪云共享型MYSQL】Navicat连接新浪云共享型MYSQL附JAVA/PHP配置文件)
  2. C语言加油站程序,C语言解决 加油站问题
  3. Re.常系数齐次递推
  4. Linux led_class子系统
  5. itext生成pdf间距_[itext]Java生成PDF文件
  6. 迪文屏CRC16校验
  7. 迪文屏DMT12800K070_A2WTC踩坑实录(二)
  8. Java实现消息队列服务
  9. python中空集怎么表示
  10. android svg 线条动画教程,【Web动画】SVG 实现复杂线条动画