Как посчитать медиану в pandas
Перейти к содержимому

Как посчитать медиану в pandas

  • автор:

Как найти медианное значение по группе в Pandas

Вы можете использовать следующий базовый синтаксис для вычисления медианного значения по группе в pandas:

df.groupby(['group_variable'])['value_variable']. median().reset_index() 

Вы также можете использовать следующий синтаксис для вычисления медианного значения, сгруппированного по нескольким столбцам:

df.groupby(['group1', 'group2'])['value_variable']. median().reset_index() 

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: найти медианное значение по одной группе

Предположим, у нас есть следующие Pandas DataFrames:

import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame df team position points rebounds 0 A G 5 11 1 A G 7 8 2 A F 7 10 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9 7 B F 4 12 

Мы можем использовать следующий код, чтобы найти среднее значение столбца «баллы», сгруппированное по командам:

#calculate median points by team df.groupby(['team'])['points']. median().reset_index() team points 0 A 7.0 1 B 9.0 

Из вывода мы видим:

  • Среднее количество очков, набранных игроками команды А, равно 7 .
  • Среднее количество очков, набранных игроками команды Б, равно 9 .

Обратите внимание, что мы также можем найти медианное значение двух переменных одновременно:

#calculate median points and median rebounds by team df.groupby(['team'])[['points', 'rebounds']]. median () team points rebounds 0 A 7.0 9.0 1 B 9.0 7.5 

Пример 2: найти медианное значение по нескольким группам

В следующем коде показано, как найти медианное значение столбца «очки», сгруппированного по команде и позиции:

#calculate median points by team df.groupby(['team', 'position'])['points']. median().reset_index() team position points 0 A F 8.0 1 A G 6.0 2 B F 6.5 3 B G 10.5 

Из вывода мы видим:

  • Среднее количество очков, набранных игроками на позиции «F» в команде А, равно 8 .
  • Среднее количество очков, набранных игроками в позиции «G» в команде А, равно 6 .
  • Среднее количество очков, набранных игроками на позиции «F» в команде B, составляет 6,5 .
  • Среднее количество очков, набранных игроками на позиции «G» в команде B, составляет 10,5 .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные функции в pandas:

Функция median() модуля statistics в Python, медиана последовательности

Медиана (среднее значение) числовой последовательности

Синтаксис:
import statistics statistics.median(data) 
Параметры:
  • data — данные, последовательность или итерация.
Возвращаемое значение:
  • медиану (среднее значение) числовой последовательности data .
Описание:

Функция median() модуля statistics возвращает медиану (среднее значение) числовой последовательности data , используя общий метод “среднее из двух средних”.

Аргумент данных data может быть последовательностью или итерацией. Если последовательность data пуста, то возникает ошибка StatisticsError .

Медиана это число, характеризующее выборку (например, набор чисел) и является надежным показателем центрального местоположения в последовательности и меньше зависит от наличия «всплесков» в элементах. В более общем случае медиану можно найти, упорядочив элементы выборки по возрастанию или убыванию и взяв средний элемент.

Когда количество элементов последовательности нечетное, то возвращается средний элемент данных:

>>> import statistics >>> statistics.median([1, 3, 5]) # 3 

Когда количество элементов последовательности четное, то медиана интерполируется путем взятия среднего из двух средних значений:

>>> import statistics >>> statistics.median([1, 3, 5, 7]) # 4.0 

Такой расчет подходит, когда данные дискретны и нет претензий к тому, что медиана может не соответствовать фактическому значению элемента последовательности.

Если данные являются порядковыми (поддерживает операции с порядком), но не числовыми (не поддерживает сложение), рассмотрите возможность использования функции statistics.median_low() или statistics.median_high() .

  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Функция mean() и fmean() модуля statistics, среднее арифметическое
  • Функция geometric_mean() модуля statistics, среднее геометрическое
  • Функция harmonic_mean() модуля statistics, среднее гармоническое
  • Функция median() модуля statistics, медиана последовательности
  • Функция median_low() модуля statistics, наименьшее среднее значение
  • Функция median_high() модуля statistics, наибольшее среднее значение
  • Функция median_grouped() модуля statistics, медиана непрерывных данных
  • Функция mode() модуля statistics, распространенный элемент
  • Функция multimode() модуля statistics, часто встречающиеся элементы
  • Функция pstdev() модуля statistics, стандартное отклонение
  • Функция pvariance() модуля statistics, дисперсия элементов
  • Функция stdev() модуля statistics, выборочное отклонение
  • Функция variance() модуля statistics, выборочная дисперсия
  • Функция quantiles() модуля statistics, интервалы равной вероятности
  • Класс NormalDist() модуля statistics, распределение случайной величины
  • Функция covariance() модуля statistics ковариация данных
  • Функция correlation() модуля statistics, корреляция Пирсона
  • Функция linear_regression() модуля statistics, линейная регрессия

Как рассчитать медиану в Pandas (с примерами)

Вы можете использовать функцию median() , чтобы найти медиану одного или нескольких столбцов в кадре данных pandas:

#find median value in specific column df['column1']. median () #find median value in several columns df[['column1', 'column2']]. median () #find median value in every numeric column df.median () 

В следующих примерах показано, как использовать эту функцию на практике со следующими пандами DataFrame:

#create DataFrame df = pd.DataFrame() #view DataFrame df player points assists rebounds 0 A 25 5 11 1 B NA 7 8 2 C 15 7 10 3 D 14 9 6 4 E 19 12 6 5 F 23 9 5 6 G 25 9 9 7 H 29 4 12 

Пример 1: найти медиану одного столбца

В следующем коде показано, как найти медианное значение одного столбца в кадре данных pandas:

#find median value of *points* column df['points']. median () 23.0 

Среднее значение в столбце очков равно 23 .

Обратите внимание, что по умолчанию функция median() игнорирует любые отсутствующие значения при вычислении медианы.

Пример 2: найти медиану нескольких столбцов

В следующем коде показано, как найти медианное значение нескольких столбцов в кадре данных pandas:

#find median value of *points* and *rebounds* columns df[['points', 'rebounds']]. median () points 23.0 rebounds 8.5 dtype: float64 

Пример 3. Найдите медиану всех числовых столбцов

В следующем коде показано, как найти медианное значение всех числовых столбцов в кадре данных pandas:

#find median value of all numeric columns df.median () points 23.0 assists 8.0 rebounds 8.5 dtype: float64 

pandas.DataFrame.median#

Return the median of the values over the requested axis.

Parameters : axis

Axis for the function to be applied on. For Series this parameter is unused and defaults to 0.

For DataFrames, specifying axis=None will apply the aggregation across both axes.

New in version 2.0.0.

skipna bool, default True

Exclude NA/null values when computing the result.

numeric_only bool, default False

Include only float, int, boolean columns. Not implemented for Series.

**kwargs

Additional keyword arguments to be passed to the function.

Returns : Series or scalar

>>> s = pd.Series([1, 2, 3]) >>> s.median() 2.0 

With a DataFrame

>>> df = pd.DataFrame('a': [1, 2], 'b': [2, 3]>, index=['tiger', 'zebra']) >>> df a b tiger 1 2 zebra 2 3 >>> df.median() a 1.5 b 2.5 dtype: float64 
>>> df.median(axis=1) tiger 1.5 zebra 2.5 dtype: float64 

In this case, numeric_only should be set to True to avoid getting an error.

>>> df = pd.DataFrame('a': [1, 2], 'b': ['T', 'Z']>, . index=['tiger', 'zebra']) >>> df.median(numeric_only=True) a 1.5 dtype: float64 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *