关于Pandas版本: 本文基于 pandas2.2.0 编写。
关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。
传送门: Pandas API参考目录
传送门: Pandas 版本更新及新特性
传送门: Pandas 由浅入深系列教程
本节目录
Pandas.Series.quantile()
Series.quantile
方法用于返回 Series
行或列的分位数。
语法:
Series.quantile(q=0.5, interpolation=‘linear’)
返回值:
- float or Series
- 如果同时计算多个分位数,则返回
Series
。 - 如果只计算一个分位数,则返回
float
。
- 如果同时计算多个分位数,则返回
参数说明:
q 分位
-
q : float or array-like, default 0.5 (50% quantile)
q
参数,用于指分位,取值范围0 <= q <= 1
,默认q=0.5
即计算 50% 分位数(中位数)。 该参数接受以下类型的传入:- float: 浮点数,适用于只计算一个分位数。
- array-like: 一个 类似数组,适用于同时计算多个分位数。
interpolation 插值法
-
interpolation : {‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}
interpolation
参数,用于控制当 p o s pos pos 不是整数时的取值方法,默认interpolation=‘linear’
使用线性插值法:- ‘linear’: 线性插值法, $Q_{p} = {x_i} + ({x_j} - {x_i}) \cdot δ $
- ‘lower’: 较小值 Q p = x i Q_{p} = {x_i} Qp=xi,
- ‘higher’: 较大值 Q p = x j Q_{p} = {x_j} Qp=xj,
- ‘nearest’: 最近值(较小值 x i {x_i} xi 或 较大值 x j {x_j} xj ,哪个近就取哪个) ,
- ‘midpoint’: 中间值 Q p = x i + x j 2 Q_{p} = \frac{{x_{\text{i}} + x_{\text{j}}}}{2} Qp=2xi+xj ,其实就是较小值和较大值的平均值。
相关方法:
示例:
测试文件下载:
本文所涉及的测试文件,如有需要,可在文章顶部的绑定资源处下载。
若发现文件无法下载,应该是资源包有内容更新,正在审核,请稍后再试。或站内私信作者索要。
例1:计算一个或多个分位数()
例1-1、创建演示数据
import pandas as pd
s = pd.Series([2, 4, 6, 8, pd.NA])
s
0 2
1 4
2 6
3 8
4 <NA>
dtype: object
例1-2、只计算25%分位数(第一四分位数)
s.quantile(q=0.25)
第1组数据 3.5
第2组数据 4.0
Name: 0.25, dtype: object
注意观察计算结果,但是在计算过程中,并没有被计算到元素数量 n n n
例1-3、同时计算25%分位数(第一四分位数)和50%分位数(中位数)
s.quantile(q=[0.25, 0.5])
0.25 3.5
0.50 5.0
dtype: object
例2:使用不同的插值法计算分位数
例2-1、默认 interpolation=‘linear’
使用线性插值法
import pandas as pd
s2 = pd.Series([1, 2, 3, 4])
s2.quantile([0.25, 0.5])
0.25 1.75
0.50 2.50
dtype: float64
例2-2、使用平均值插值法
s2.quantile([0.25, 0.5], interpolation='midpoint')
0.25 1.5
0.50 2.5
dtype: float64