Статья Автор: Деникина Н.В., Деникин А.В.

Когда нужны не пороги, а примерно равные группы

Допустим, нужно разделить результаты на нижнюю, среднюю и верхнюю треть:

  A B
1 student score
2 Аня 42
3 Борис 48
4 Вика 51
5 Глеб 53
6 Даша 54
7 Егор 58
8 Женя 71
9 Ира 83
10 Кирилл 95

Здесь нам не нужен заранее известный порог вроде «60 баллов». Нам нужны три группы примерно одинакового размера.

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

Инструмент: pd.qcut()
pd.qcut() — делит данные по квантилям, то есть так, чтобы в каждый интервал (бин) попало примерно одинаковое количество элементов. В отличие от pd.cut(), который делит на равные диапазоны значений.


Основные параметры
Параметр Назначение
x данные
q число интервалов (или список квантилей)
labels свои подписи интервалов
duplicates='drop' что делать с повторяющимися границами (когда много одинаковых значений)
retbins=True вернуть границы интервалов
cut и qcut решают разные задачи

cut — когда важны сами границы. qcut — когда важны части распределения.
 


Проверь себя

Сопоставьте ситуацию и подходящий инструмент.


Подробный разбор

Если порог существует независимо от конкретной выборки, обычно нужен cut.

Если нужно разделить саму выборку на равные по количеству части, удобнее qcut.

Печать