Функция Pandas Series.median()

Pandas 常用函数Pandas: общие функции


Series.median()Является функцией в Pandas, используемой для вычисления медианы (серединного значения) Series. Медиана — это значение, находящееся в середине после сортировки данных. На неё не влияют экстремальные значения, и она является устойчивым показателем центральной тенденции данных.

Когда в данных есть выбросы или асимметричные распределения, медиана может точнее отражать центральное положение данных, чем среднее. Она часто используется в таких сценариях, как анализ данных о доходах, статистика цен на жильё и анализ оценок.


Базовый синтаксис и параметры

median()Является методом объекта Series, вызываемым напрямую через оператор точки.

Формат синтаксиса

Series.median(axis=None, skipna=True, level=None, numeric_only=None, **kwargs)

Описание параметра

Параметр Type Описание Значение по умолчанию
axis int Указывает ось. Series имеет только одну строку данных, поэтому этот параметр в основном предназначен для совместимости с DataFrame. Отсутствует
skipna bool Если True, значения NaN пропускаются при вычислении; если False, результат возвращает NaN при встрече с NaN. True
level int или str Если Series имеет MultiIndex, укажите уровень для вычисления. Отсутствует
numeric_only bool Если True, вычисляются только числовые данные; в противном случае выполняется попытка преобразования к числовому типу. False

Возвращаемое значение

  • Тип возвращаемого значения:float
  • ОписаниеВозвращает медиану всех элементов в Series. Если количество элементов чётное, возвращает среднее двух средних элементов.

Примеры

Давайте досконально освоим ... с помощью серии примеров от простого к сложному.Series.median()использование.

Пример 1: базовое использование — медиана нечётного числа элементов

Для данных с нечётным количеством элементов медиана — это значение, расположенное посередине после сортировки.

Пример

import pandas as pd

# Создайте Series, содержащий доходы сотрудников
# Смоделируем ежемесячный доход 7 сотрудников в отделе (единица измерения: тыс. юаней)
income = pd.Series([5, 6, 7, 8, 9, 10, 50])

# Вычисляем медиану
median_income = income.median()

print("Ежемесячный доход сотрудников (тыс. юаней):")
print(income)
print()
print(f"Средний доход: {income.mean():.2f} тыс. юаней")
print(f"Медианный доход: {median_income} тыс. юаней")
print()
print("Примечание: на среднее значение сильно влияет экстремальное значение (50 тыс. юаней), тогда как медиана лучше отражает истинный уровень.")

Вывод:

员工月收入(千元):
0     5
1     6
2     7
3     8
4     9
5    10
6    50
dtype: int64

平均收入:13.57 千元
中位数收入:8.0 千元

Анализ кода:

  • После сортировки данных: [5, 6, 7, 8, 9, 10, 50]
  • Позиция середины — 4-й элемент (индекс 3), со значением 8.
  • Поскольку есть экстремальное значение (50), среднее (13.57) завышается, тогда как медиана (8) лучше отражает уровень дохода большинства людей.

Пример 2: медиана для чётного числа элементов

Для данных с чётным числом элементов медиана — это среднее двух средних элементов.

Пример

import pandas as pd

# Создать Series с 6 элементами
# Смоделировать экзаменационные баллы 6 студентов
scores = pd.Series([75, 82, 88, 92, 95, 100])

# Вычисляем медиану
median_score = scores.median()

print("Оценки студентов за экзамен:")
print(scores)
print()
print(f"Средний балл: {scores.mean():.2f}")
print(f"Медианный балл: {median_score}")

Вывод:

学生考试成绩:
0    75
1    82
2    88
3    92
4    95
5   100
dtype: int64

平均成绩:88.67
中位数成绩:90.0

Анализ кода:

  • После сортировки данных: [75, 82, 88, 92, 95, 100]
  • Два средних элемента — 88 и 92 (индексы 2 и 3).
  • Медиана = (88 + 92) / 2 = 90.

Пример 3: Обработка данных, содержащих пропущенные значения

skipnaПараметр определяет, как обрабатываются пропущенные значения.

Пример

import pandas as pd
import numpy as np

# Создать Series с пропущенными значениями
data_with_nan = pd.Series([10, 20, np.nan, 30, 40, np.nan, 50])

print("Данные с пропущенными значениями:")
print(data_with_nan)
print()

# По умолчанию skipna=True, NaN пропускается при вычислении медианы
median_skipna = data_with_nan.median()
print(f"Медиана при skipna=True (по умолчанию): {median_skipna}")

# Установить skipna=False
median_no_skipna = data_with_nan.median(skipna=False)
print(f"Медиана при skipna=False: {median_no_skipna}")

Вывод:

包含缺失值的数据:
0    10.0
1    20.0
2       NaN
3    30.0
4    40.0
5       NaN
6    50.0
dtype: float64

skipna=True(默认)时的中位数:30.0
skipna=False 时的中位数:nan

Анализ кода:

  • Корректные данные: [10, 20, 30, 40, 50], всего 5 элементов.
  • После сортировки берём значение из середины: 30.
  • skipna=FalseКогда ..., при наличии NaN возвращается NaN.

Пример 4: Сценарии применения сравнения среднего значения и медианы

Демонстрирует преимущество медианы при работе с асимметричными данными.

Пример

import pandas as pd

# Смоделировать данные о ежемесячном доходе 10 домохозяйств в жилом районе
# У большинства людей доход составляет от 3000 до 5000 юаней, но есть несколько человек с высоким доходом
income_data = pd.Series([3000, 3500, 3800, 4000, 4200, 4500, 4800, 5000, 8000, 50000])

print("Данные о ежемесячном доходе жителей микрорайона (юаней):")
print(income_data)
print()

mean_income = income_data.mean()
median_income = income_data.median()

print(f"Среднее: {mean_income:.2f} юаней")
print(f"Медиана: {median_income} yuan")
print()

print("Анализ:")
print("Среднее значение (10380 yuan) сильно завышено экстремальным значением (50000 yuan).")
print("Медиана (4350 yuan) лучше отражает истинный уровень доходов большинства домохозяйств.")
print("Именно поэтому статистические ведомства чаще используют медиану при публикации данных о доходах.")

Вывод:

小区住户月收入数据(元):
0     3000
1     3500
2     3800
3     4000
4     4200
5     4500
6     4800
7     5000
8     8000
9    50000
dtype: int64

平均值:10380.00 元
中位数:4350.0 元

Примечания

  • Медиана нечувствительна к экстремальным значениям и более устойчива, чем среднее.
  • Когда количество точек данных чётное, медиана — это среднее двух центральных чисел.
  • Когда распределение данных имеет значительную асимметрию, медиана лучше отражает центральное положение данных, чем среднее.
  • skipnaПоведение параметра являетсяmean()одинаковым.

Итог

Series.median()Это важная функция для описания центральной тенденции данных. Её основные особенности включают:

  • Не подвержен влиянию экстремальных значений, результат вычислений устойчив.
  • Для чётного числа элементов возвращает среднее двух центральных элементов.
  • Особенно полезно при анализе данных с асимметричными распределениями, такими как доходы и цены на жильё.
  • Синтаксис и параметрыmean()абсолютно такие же, легко изучать и использовать.

В практическом анализе данных рекомендуется вычислять как среднее, так и медиану, чтобы более полно понять характеристики распределения данных. Когда разница между ними велика, это указывает на то, что данные могут иметь асимметричное распределение или выбросы.

Pandas 常用函数Pandas: общие функции

Другие расширения