Як обчислити квантилі за групами в pandas
Ви можете використовувати наступний базовий синтаксис для обчислення квантилів за групами в Pandas:
df. groupby (' grouping_variable '). quantile ( .5 )
Наступні приклади показують, як використовувати цей синтаксис на практиці.
Приклад 1: обчисліть квантиль за групою
Припустімо, що у нас є наступні pandas DataFrame:
import pandas as pd #createDataFrame 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 #createDataFrame 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