四分位数与pandas中的quantile函数
四分位数与pandas中的quantile函数
1.分位数概念
统计学上的有分位数这个概念,一般用p来表示。原则上p是可以取0到1之间的任意值的。但是有一个四分位数是p分位数中较为有名的。
所谓四分位数;即把数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。
为了更一般化,在计算的过程中,我们考虑p分位。当p=0.25 0.5 0.75 时,就是在计算四分位数。
- 第1四分位数 (Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。
- 第2四分位数 (Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。
- 第3四分位数 (Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。
2.计算方法
1)确定p分位数的位置(有两种方法):
方法1 pos = (n+1)*p
方法2 pos = 1+(n-1)*p(pandas 中使用的是方法2)
2)计算分位数,一般有五种方法,pandas里面的quantile函数中,interpolation参数来控制(见后)
3.quantile函数
pandas库quantile函数可以很方便的帮助我们进行分位数的计算。
DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpolation=’linear’)
常用参数:
q : 数字或者是类列表,范围只能在0-1之间,默认是0.5,即中位数-第2四分位数
axis :计算方向,可以是 {0, 1, ‘index’, ‘columns’}中之一,默认为 0
interpolation(插值方法):可以是 {‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}之一,默认是linear。
这五个插值方法是这样的:当选中的分为点位于两个数数据点 i and j 之间时:
- linear: i + (j - i) * fraction, fraction由计算得到的pos的小数部分(后面有例子);
- lower: i.
- higher: j.
- nearest: i or j whichever is nearest.
- midpoint: (i + j) / 2.
举例
import pandas as pd
df=pd.read_csv('data/练习.csv')
df.sort_values("Height")
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
ID | Height | |
---|---|---|
0 | 1101 | 2 |
3 | 1201 | 4 |
2 | 1103 | 5 |
1 | 1102 | 7 |
4 | 1203 | 8 |
5 | 1205 | 12 |
参数q默认为0.5(中位数)
df['Height'].quantile()
6.0
参数interpolation的不同方法
df['Height'].quantile(q=0.5,interpolation="linear")
6.0
df['Height'].quantile(q=0.5,interpolation="lower")
5
df['Height'].quantile(q=0.5,interpolation="higher")
7
df['Height'].quantile(q=0.5,interpolation="midpoint")
6.0
df['Height'].quantile(q=0.5,interpolation="nearest")
5
说明:df['Height']中一共有6个数据,中位数的位置pos=1+(6-1)*0.5=3.5,这个位置介于5和7之间,则i=5,j=7,fraction=0.5
- linear:i + (j - i) * fraction=5+(7-5)*0.5=6
- lower:i=5
- higher:j=7
- midpoint:(i+j)/2=(5+7)/2=6
- nearest:5更接近(这个没太搞懂,貌似是fraction更靠近的那个整数)
参数q为列表类型,计算四分位数
df['Height'].quantile([0.25,0.5,0.75])
0.25 4.25
0.50 6.00
0.75 7.75
Name: Height, dtype: float64
四分位数与pandas中的quantile函数的更多相关文章
- 分位函数(四分位数)概念与pandas中的quantile函数
p分位函数(四分位数)概念与pandas中的quantile函数 函数原型 DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpola ...
- pandas中的quantile函数
https://blog.csdn.net/weixin_38617311/article/details/87893168 data.price.quantile([0.25,0.5,0.75]) ...
- 使用pandas中的raad_html函数爬取TOP500超级计算机表格数据并保存到csv文件和mysql数据库中
参考链接:https://www.makcyun.top/web_scraping_withpython2.html #!/usr/bin/env python # -*- coding: utf-8 ...
- Python学习教程:Pandas中第二好用的函数
从网上看到一篇好的文章是关于如何学习python数据分析的迫不及待想要分享给大家,大家也可以点链接看原博客.希望对大家的学习有帮助. 本次的Python学习教程是关于Python数据分析实战基础相关内 ...
- pandas 之 groupby 聚合函数
import numpy as np import pandas as pd 聚合函数 Aggregations refer to any data transformation that produ ...
- pandas中的分组技术
目录 1 分组操作 1.1 按照列进行分组 1.2 按照字典进行分组 1.3 根据函数进行分组 1.4 按照list组合 1.5 按照索引级别进行分组 2 分组运算 2.1 agg 2 ...
- 数据分析面试题之Pandas中的groupby
昨天晚上,笔者有幸参加了一场面试,有一个环节就是现场编程!题目如下: 示例数据如下,求每名学生(ID)对应的成绩(score)最高的那门科目(class)与ID,用Python实现: 这个题目 ...
- pandas中的空值处理
1.空值 1.1 有两种丢失数据: None: Python自带的数据类型 不能参与到任何计算中 np.nan: float类型 能参与计算,但结果总是nan # None+2 # 报错 # np.n ...
- Python之Pandas中Series、DataFrame
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
随机推荐
- protected和private的区别
1. protected和private在没有继承关系的类A和类B之间其作用都可以视为式一样的--表示私有--每个类中的protected字段/属性都不能被访问到: 2. 当类与类之间存在继承关系时候 ...
- 由一次安全扫描引发的思考:如何保障 API 接口的安全性?
引言 前段时间,公司对运行的系统进行了一次安全扫描,使用的工具是 IBM 公司提供的 AppScan . 这个正所谓不扫不要紧,一扫吓一跳,结果就扫出来这么个问题. 我们的一个年老失修的内部系统,在登 ...
- Centos7无界面化启动
Centos7无界面启动: 为了减少系统开销,有时候我们需要无图形界面启动linux(centos7) systemctl set-default multi-user.target (关闭图形界面) ...
- 谁说双非本科就一定无缘阿里?H哥粉丝6面通过,喜提Offer!
本文来自作者投稿(原作者:小胖儿),原作者是一位2021届本科毕业生,就读于一所双非(非985.非211)院校,在今年2月份的时候,我曾经帮他指导过简历,并且根据他的简历内容帮他提了一些可能会问到的问 ...
- shell判断语句
1.test命令 也可以用[ ]来表示 返回值为0时为true,返回值为1时为false. 例1:str1=aaa,str2=bbb 1)判断字符串是否为空(省略了-n选项,-n选项是不为空,-z ...
- [工具-004]如何从apk中提取AndroidManifest.xml并提取相应信息
跟上一篇类似,我们也需要对APK的一些诸如umengkey,ADkey,TalkingData进行验证,那么我们同样需要解压apk文件,然后提取其中的AndroidManifest.xml.然后解析x ...
- 轻松实现记录与撤销——C#中的Command模式
Command模式属于行为模式,作为大名鼎鼎的23个设计模式之一,Command模式理解起来不如工厂模式,单例模式等那么简单直白.究其原因,行为模式着重于使用,如果没有编程实践,确实不如创造模式那么直 ...
- 记录B端和C端产品的理解
C 为:Consumer.Client,我们每天都在接触C端产品,为消费者.个人用户或终端用户,比如:微信.头条.抖音.美团等等. B 为:Business,作为职场人士也会经常接触B端产品,通常为企 ...
- 关于zabbix利用snmp协议从交换机获取的端口带宽数据的概念问题
关于zabbix利用snmp协议从交换机获取的端口带宽数据的概念问题:使用端口OID号获得的数据实际是即时的端口总数据量,而在计算带宽时,需要选择一个时间段,在时间段的结束点获得的总数据量减去在时间段 ...
- Rocket - config - Parameters
https://mp.weixin.qq.com/s/uLEr9gAFaMDIXa8S9xJVTw 介绍配置类Parameters及其伴生对象的实现. 参考链接: https://docs.q ...