函数原型

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

参数

- q : float or array-like, default 0.5 (50% quantile 即中位数-第2四分位数)

0 <= q <= 1, the quantile(s) to compute

- axis : {0, 1, ‘index’, ‘columns’} (default 0)

0 or ‘index’ for row-wise, 1 or ‘columns’ for column-wise

- interpolation(插值方法) : {‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}

当选中的分为点位于两个数数据点 i and j 之间时:

linear: i + (j - i) * fraction, fraction由计算得到的pos的小数部分(可以通过下面一个例子来理解这个fraction);

lower: i.

higher: j.

nearest: i or j whichever is nearest.

midpoint: (i + j) / 2.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

统计学上的四分为函数

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

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

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

第2四分位数 (Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。

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

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

计算方法与举例

为了更一般化,在计算的过程中,我们考虑p分位。当p=0.25 0.5 0.75 时,就是在计算四分位数。

首先确定p分位数的位置(有两种方法):

方法1 pos = (n+1)*p

方法2 pos = 1+(n-1)*p

pandas 中使用的是方法2确定的。

给定测试数据:

a b

0 1 1

1 2 10

2 3 100

3 4 100

1

2

3

4

5

计算

df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]),columns=['a', 'b'])

print(df.quantile(.1))

1

2

结果是:

a 1.3

b 3.7

Name: 0.1, dtype: float64

1

2

3

默认使用的是linear 插值

计算a列

pos = 1 + (4 - 1)*0.1 = 1.3

fraction = 0.3

ret = 1 + (2 - 1) * 0.3 = 1.3

计算b列

pos = 1.3

ret = 1 + (10 - 1) * 0.3 = 3.7

在b中,假如pos等于2.5呢,即在2-3之间,那i对应就是10,j对应就是100,ret = 10 + (100-10) * 0.3 = 55

“分为点p位于两个数数据点 i and j 之间时”,比如 y= [1,10,100,100],x= [0,1,2,3],对应于[0,0.333,0.667,1],当p=0.4时,i、j分别为10、100,因此,pos = 1 + (4-1)*0.4=2.2,pos取小数部分即0.2,也即fraction=0.2(fraction由计算得到的pos的小数部分),,,故值为10+(100-10)* 0.2=28 。 验证: df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]),columns=['a', 'b']) print df.quantile([0.1,0.2,0.4,0.5, 0.75])

python四分位数_分位函数(四分位数)概念与pandas中的quantile函数相关推荐

  1. mysql求分位数_分位函数(四分位数)概念与pandas中的quantile函数

    函数原型 DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpolation='linear') 参数 - q : float or ...

  2. python时间函数报错_python3中datetime库,time库以及pandas中的时间函数区别与详解...

    1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...

  3. python获取系统时间函数_python3中datetime库,time库以及pandas中的时间函数区别与详解...

    1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...

  4. Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略

    Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介.具体案例.使用方法之详细攻略 目录 pandas中数据处理常用函数(isnull/dropna/fillna/ ...

  5. 【Python】Pandas中的宝藏函数-applymap

    applymap的用法比较简单,会对DataFrame中的每个单元格执行指定函数的操作,虽然用途不如apply广泛,但在某些场合下还是非常有用的. applymap()是与map()方法相对应的专属于 ...

  6. python使用pandas中的to_json函数将dataframe数据写入json文件中

    python使用pandas中的to_json函数将dataframe数据写入json文件中 目录 python使用pandas中的to_json函数将dataframe数据写入json文件中 #导入 ...

  7. 【Python】Pandas中的宝藏函数-rank()

    所谓的排名,就是一组数据,我们想要知道每一条数据在整体中的名次,需要的是输出名次,并不改变原数据结构. 排序会改变原来的数据结构,且不会返回名次,这一点区别需要弄明白.初学的时候容易弄混淆. 本文将通 ...

  8. 【Python】Pandas中的宝藏函数-apply

    apply()堪称Pandas中最好用的方法,其使用方式跟map()很像,主要传入的主要参数都是接受输入返回输出. 但相较于昨天介绍的map()针对单列Series进行处理,一条apply()语句可以 ...

  9. Pandas 中的这些函数/属性将被 deprecated

    作者 | luanhz 来源丨小数志 导读 Pandas对于日常数据分析和处理来说是最常用的工具(没有之一),笔者之前也总结分享了很多相关用法和技巧. 与之不同,今天本文来介绍几个已经在函数文档中列入 ...

最新文章

  1. linux目录空间内存,Linux 目录结构:内存文件夹
  2. cxf环境搭建与第一个项目
  3. pin controller driver代码分析
  4. mysql setnull_1、Mysql无法创建外键的原因 2、MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用...
  5. EasyUI-dialog
  6. 创建线程的函数CreateThread
  7. 数字城市杭州执法管理平台测试计划【软件测试与工程】
  8. JQuery封装的ajax方法
  9. 【长文详解】T5: Text-to-Text Transfer Transformer 阅读笔记
  10. Win10/Win8快速启动失效/卡logo 的解决方法汇总
  11. 一个bootstrap.css的使用案例
  12. 单模光纤和多模光纤的区别,及光纤收发机(光电收发器)的介绍
  13. dnSpy 反编译exe
  14. 解决Microsoft Store应用商店打不开 代码: 0x80131500
  15. 读书笔记 - 说话之道 (蔡康永) - 1
  16. php做网络心理测试,php心理测试程序源代码版,求高手帮忙写一个c语言的心理测试程序...
  17. 自动化立体库能力分析——堆垛机(单深单货位Case1,双循环)
  18. 网络空间安全导论实践报告
  19. 2022年广东省安全员A证第三批(主要负责人)考试题模拟考试题库模拟考试平台操作
  20. KingBaseES 报错Connection to X.X.X.X:54321 refused.Check that the hostname and port are correct and ..

热门文章

  1. 解决在phpmyadmin中执行sql语句出现的错误:Unknown storage engine 'InnoDB'
  2. Window/linux(Ubuntu)使用反编译工具jad
  3. 文本分类模型_文本分类中的经典深度学习模型
  4. 设计灵感|文字排版海报有多少种可能?
  5. APP设计灵感|仪表盘这样设计,所有信息一目了然!
  6. 不会PS抠图?免抠(扣)PNG图片网就解决了
  7. 分层精品优秀电商海报模版|无需数量多,胜在精
  8. python迭代器与生成器_python的迭代器与生成器实例详解
  9. NanoLog软件架构
  10. Linux 基础命令:IP 路由操作 -ip命令