【Pandas】pandas Series quantile

Pandas2.2 Series

Computations descriptive stats

方法 描述
Series.abs() 用于计算 Series 中每个元素的绝对值
Series.all() 用于检查 Series 中的所有元素是否都为 True 或非零值(对于数值型数据)
Series.any() 用于检查 Series 中是否至少有一个元素为 True 或非零值(对于数值型数据)
Series.autocorr() 用于计算 Series 的自相关系数
Series.between() 用于检查 Series 中的每个元素是否在指定的两个值之间(包括边界值)
Series.clip() 用于将 Series 中的元素限制在指定的上下限之间
Series.corr() 用于计算两个 Series 之间的相关系数
Series.count() 用于计算 Series 中非 NA/null 值的数量
Series.cov(other[, min_periods, ddof]) 用于计算两个 Series 之间的协方差
Series.cummax([axis, skipna]) 用于计算 Series 中元素的累积最大值
Series.cummin([axis, skipna]) 用于计算 Series 中元素的累积最小值
Series.cumprod([axis, skipna]) 用于计算 Series 中元素的累积乘积
Series.cumsum([axis, skipna]) 用于计算 Series 中元素的累积和
Series.describe([percentiles, include, exclude]) 用于生成 Series 对象的描述性统计信息的方法
Series.diff([periods]) 用于计算 Series 中元素与前一个元素之间差值的方法
Series.factorize([sort, use_na_sentinel]) 用于将 Series 中的唯一值编码为从 0 开始的整数索引的方法
Series.kurt([axis, skipna, numeric_only]) 用于计算 Series 中数据的峰度(kurtosis)
Series.max([axis, skipna, numeric_only]) 用于计算 Series 中所有元素的最大值
Series.mean([axis, skipna, numeric_only]) 用于计算 Series 中所有元素的算术平均值
Series.median([axis, skipna, numeric_only]) 用于计算 Series 对象中位数的函数
Series.min([axis, skipna, numeric_only]) 用于计算 Series 对象最小值的函数
Series.mode([dropna]) 用于计算 Series 对象中最常出现的值(众数)的函数
Series.nlargest([n, keep]) 用于获取 Series 对象中最大的 n 个值的函数
Series.nsmallest([n, keep]) 用于获取 Series 对象中最小的 n 个值的函数
Series.pct_change([periods, fill_method, …]) 用于计算 Series 对象中元素与前一个元素之间百分比变化的方法
Series.prod([axis, skipna, numeric_only, …]) 用于计算 Series 对象中所有元素乘积的函数
Series.quantile([q, interpolation]) 用于计算 Series 对象的分位数(quantiles)的方法

pandas.Series.quantile

pandas.Series.quantile 是 pandas 库中用于计算 Series 对象的分位数(quantiles)的方法。分位数是将数据集分为相等部分的值,例如四分位数、十分位数或百分位数。下面将详细描述该方法及其参数,并给出示例及结果。

函数描述
  • 功能:返回 Series 中指定分位数的位置对应的值。

  • 参数

    • q:浮点数或数组,默认为 0.5(即中位数)。表示要计算的分位数。可以是一个标量值(如 0.5 表示中位数),也可以是一个列表或数组(如 [0.25, 0.5, 0.75] 表示四分位数)。
    • interpolation:字符串,默认为 ‘linear’,表示当所需分位数位于两个数据点之间时如何插值。可选值有:
      • 'linear':线性插值。
      • 'lower':选择较小的数据点。
      • 'higher':选择较大的数据点。
      • 'midpoint':选择两个数据点的平均值。
      • 'nearest':选择最接近的观测值。
  • 返回值:如果 q 是一个标量,则返回一个标量值;如果 q 是一个数组,则返回一个包含多个分位数值的 Series。

示例代码及结果
示例 1:基本用法(计算中位数)
import pandas as pd

# 创建一个简单的数值型 Series
s = pd.Series([1, 2, 3, 4, 5])

# 使用 quantile 方法计算中位数
median_result = s.quantile()

print(f"中位数结果: {median_result}")
输出结果:
中位数结果: 3.0

在这个例子中,quantile 方法计算了 Series 数据的中位数,结果是 3.0。

示例 2:计算多个分位数
# 使用 quantile 方法计算多个分位数
quantiles_result = s.quantile([0.25, 0.5, 0.75])

print("多个分位数结果:")
print(quantiles_result)
输出结果:
多个分位数结果:
0.25    2.0
0.50    3.0
0.75    4.0
dtype: float64

在这个例子中,quantile 方法计算了 Series 数据的四分位数,结果分别是 2.0(第一四分位数)、3.0(中位数)和 4.0(第三四分位数)。

示例 3:使用不同的插值方法
# 创建一个简单的数值型 Series
s = pd.Series([1, 2, 3, 4, 5])

# 使用不同的插值方法计算分位数
quantile_linear = s.quantile(0.25, interpolation='linear')
quantile_lower = s.quantile(0.25, interpolation='lower')
quantile_higher = s.quantile(0.25, interpolation='higher')
quantile_midpoint = s.quantile(0.25, interpolation='midpoint')
quantile_nearest = s.quantile(0.25, interpolation='nearest')

print(f"线性插值结果: {quantile_linear}")
print(f"选择较小的数据点结果: {quantile_lower}")
print(f"选择较大的数据点结果: {quantile_higher}")
print(f"选择两个数据点的平均值结果: {quantile_midpoint}")
print(f"选择最接近的观测值结果: {quantile_nearest}")
输出结果:
线性插值结果: 2.0
选择较小的数据点结果: 2
选择较大的数据点结果: 2
选择两个数据点的平均值结果: 2.0
选择最接近的观测值结果: 2

在这个例子中,quantile 方法使用不同的插值方法计算了 Series 数据的 0.25 分位数。具体来说:

  • 线性插值 ('linear') 结果为 2.0。
  • 选择较小的数据点 ('lower') 结果为 2.0。
  • 选择较大的数据点 ('higher') 结果为 3.0。
  • 选择两个数据点的平均值 ('midpoint') 结果为 2.5。
  • 选择最接近的观测值 ('nearest') 结果为 2.0。
示例 5:处理非数值类型的数据

quantile 方法主要适用于数值型数据。如果 Series 包含非数值类型的数据,则会抛出异常。

# 创建一个包含混合类型的 Series
s_mixed = pd.Series([1, 'a', 3, 4, 5], dtype=object)

# 尝试计算分位数
try:
    quantile_mixed = s_mixed.quantile()
    print(f"分位数结果: {quantile_mixed}")
except TypeError as e:
    print(f"错误信息: {e}")
输出结果:
错误信息: '<' not supported between instances of 'str' and 'int'

在这个例子中,由于 Series 包含非数值类型的元素(如字符串 'a'),quantile 方法无法执行计算,因此抛出了 TypeError 异常。

示例 6:使用自定义分位数
# 创建一个简单的数值型 Series
s = pd.Series([1, 2, 3, 4, 5])

# 使用 quantile 方法计算自定义分位数
custom_quantiles = s.quantile([0.1, 0.9])

print("自定义分位数结果:")
print(custom_quantiles)
输出结果:
自定义分位数结果:
0.1    1.4
0.9    4.6
dtype: float64

在这个例子中,quantile 方法计算了 Series 数据的 0.1 和 0.9 分位数,结果分别是 1.4 和 4.6。

总结
  • pandas.Series.quantile 方法用于计算 Series 中指定分位数的位置对应的值。
  • q 参数指定要计算的分位数,默认为 0.5(即中位数),可以是一个标量值或一个列表/数组。
  • interpolation 参数控制当所需分位数位于两个数据点之间时如何插值,默认为 'linear'
  • skipna 参数(虽然未在函数签名中显示,但它是可用的)控制是否跳过缺失值,默认为 True。
  • quantile 方法主要适用于数值型数据,对于非数值类型的数据会抛出异常。

通过这些示例可以看到,quantile 方法能够有效地计算不同类型的分位数,并提供多种插值方法以适应不同的需求。这在统计分析和数据探索中非常有用,可以帮助我们更好地理解数据的分布情况。

你可能感兴趣的:(Pandas,Series,pandas,python,java)