ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Pandas.Series.median() 中位数 详解 含代码 含测试数据集 随Pandas版本持续更新

2026/9/23 3:41:10 拓冰建站 浏览量
Pandas.Series.median() 中位数 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本: 本文基于 pandas2.2.0 编写。

关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。

传送门: Pandas API参考目录

传送门: Pandas 版本更新及新特性

传送门: Pandas 由浅入深系列教程

本节目录

  • Pandas.Series.median()
    • 计算公式:
    • 语法:
    • 返回值:
    • 参数说明:
      • axis 指定计算方向(行或列)
      • skipna 忽略缺失值
      • numeric_only 只计算数字类型的行或列
      • **kwargs
    • 相关方法:
    • 示例:
      • 例1:如果是 `Series` 始终保持 `axis=1`,会报错!
      • 例2:如果不忽略缺失值,会影响计算结果,导致只返回 NaN
      • 例3:如果 `Series` 都是缺失值,并且 `skipna=False` 只会返回缺失值

Pandas.Series.median()

Pandas.Series.median 方法用于返回 Series 所有元素的中位数。

计算公式:

  • 对于奇数个数据:
    中位数是排序后位于中间位置的数。 Med = 中间位置的数 \text{Med} = {中间位置的数} Med=中间位置的数
  • 对于偶数个数据:
    中位数是排序后中间两个数的平均值。 Med = 中间两个数之和 2 \text{Med} = \frac{\text{中间两个数之和}}{2} Med=2中间两个数之和。。

语法:

Series.median(axis=0, skipna=True, numeric_only=False, **kwargs)

返回值:

  • Series or scalar

参数说明:

axis 指定计算方向(行或列)

  • axis : {index (0), columns (1, None)

    axis 参数,用于指定计算方向,即按行计算或按列计算中位数:

    • 对于 Series 此参数无效,将始终保持 axis=0,即计算整列的中位数。axis=1 则会报错 ValueError例1

    新增于 Pandas 2.0.0 : axis 参数,新增于Pandas 2.0.0 版本。

skipna 忽略缺失值

  • skipna : bool, default True >

    skipna 参数,用于指定求中位数的时候是否忽略缺失值 ,默认 skipna=True ,即忽略缺失值:

    • True: 忽略缺失值(默认)。
    • False: 不忽略缺失值, 但是如果存在缺失值,会影响计算结果,导致返回NaN例2

      ⚠️ 注意 :

      • 如果 skipna=False ,当 Series 只有缺失值,计算结果也将是缺失值。 例3

numeric_only 只计算数字类型的行或列

  • numeric_only : bool, default False

    numeric_only 参数,用于控制是否 只计算数值类型浮点数(float),整数(int),布尔值(boolean)的行或列:

    • 对于 Series 此参数无效。

**kwargs

  • **kwargs :

    用于保持和 numpy 兼容而保留的参数,一般不需要使用。

相关方法:

➡️ 相关方法


  • DataFrame.median

    中位数

示例:

测试文件下载:

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

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

测试文件下载位置.png

测试文件下载位置

例1:如果是 Series 始终保持 axis=1,会报错!

import numpy as np
import pandas as pd# 构建演示数据
s = pd.Series([21, 25, 62, 43])s.median(axis=1)

在这里插入图片描述

Series 传递 `axis=1` 引发的 `ValueError`

例2:如果不忽略缺失值,会影响计算结果,导致只返回 NaN

import numpy as np
import pandas as pds = pd.Series([1, 2, 3, np.NaN, 4])s.median(skipna=False)
nan

例3:如果 Series 都是缺失值,并且 skipna=False 只会返回缺失值

import numpy as np
import pandas as pds = pd.Series([np.NaN, np.NaN, np.NaN, np.NaN])s.median(skipna=False)
nan

由于age列全是缺失值,所以只会返回缺失值。