关于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 ,其实就是较小值和较大值的平均值。

相关方法:

示例:

测试文件下载:

本文所涉及的测试文件,如有需要,可在文章顶部的绑定资源处下载。

若发现文件无法下载,应该是资源包有内容更新,正在审核,请稍后再试。或站内私信作者索要。

Pandas.Series.quantile() 分位数 详解 含代码 含测试数据集 随Pandas版本持续更新-LMLPHP


例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
02-06 14:22