Как рассчитать квантили по группам в Pandas


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

df.groupby('grouping_variable'). quantile ( .5 )

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

Пример 1: Расчет квантиля по группе

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

import pandas as pd

#create DataFrame 
df = pd.DataFrame({'team': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2],
 'score': [3, 4, 4, 5, 5, 8, 1, 2, 2, 3, 3, 5]})

#view first five rows
df.head ()

team score
0 1 3
1 1 4
2 1 4
3 1 5
4 1 5

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

df.groupby('team'). quantile ( .90 )

 score
team 
1 6.5
2 4.0

Вот как интерпретировать вывод:

  • 90-й процентиль «очков» для команды 1 равен 6,5 .
  • 90-й процентиль «очков» для команды 2 равен 4,0 .

Пример 2. Расчет нескольких квантилей по группам

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

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2],
 'score': [3, 4, 4, 5, 5, 8, 1, 2, 2, 3, 3, 5]})

#create functions to calculate 1st and 3rd quartiles
def q1(x):
 return x. quantile ( 0.25 )

def q3(x):
 return x. quantile ( 0.75 )

#calculate 1st and 3rd quartiles by group
vals = {' score': [q1, q3]}

df.groupby('team').agg(vals)

 score
 q1 q3
team 
1 4.0 5.0
2 2.0 3.0

Вот как интерпретировать вывод:

  • Первый и третий квартиль баллов для команды 1 составляют 4,0 и 5,0 соответственно.
  • Первая и третья квартиль очков для команды 2 составляют 2,0 и 3,0 соответственно.

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

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

Как найти максимальное значение по группе в Pandas
Как подсчитать наблюдения по группе в Pandas
Как рассчитать среднее значение столбцов в Pandas

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.