Функция pd.cut() в pandas: бакетизация и сегменты

pd.cut(series, bins) разбивает непрерывную величину на интервалы-корзины по заданным границам и присваивает каждому значению метку интервала. Парная pd.qcut режет по квантилям (равное число наблюдений в корзине). Аналитик применяет их для сегментации: возрастные группы, ценовые бакеты, RFM-сегменты.

Синтаксис

pd.cut(s, bins=[0,25,45,120], labels=['молодые','средние','старшие'])

Примеры использования

Пример 1: Возрастные сегменты по границам

pd.cut(df['age'], bins=[17,25,35,120], labels=['18-25','26-35','36+'])

Результат:

0    18-25
1    26-35
2      36+

Пример 2: Квартили по выручке (равное число в корзине)

pd.qcut(df['revenue'], q=4, labels=['Q1','Q2','Q3','Q4'])

Результат:

(по 25% наблюдений в каждом квартиле)
Порешать Python-задачи в тренажёре →

Типичная ошибка

Интервалы cut по умолчанию правозакрытые: (17,25] включает 25, но не 17 — на границах легко ошибиться. Меток должно быть на одну меньше, чем границ. Ключевая разница cut vs qcut: cut режет по ЗНАЧЕНИЮ (равные интервалы), qcut — по КОЛИЧЕСТВУ (равное число наблюдений, границы плавают). Результат — категориальный тип; для строк добавь .astype(str).

Где спрашивают на собеседовании

pd.cut/qcut спрашивают в задачах на сегментацию: «разбей клиентов на группы», «сделай квартили». Ценят знание разницы cut (по значению) и qcut (по квантилям) и понимание правозакрытых интервалов.

FAQ: частые вопросы про pd.cut

В чём разница pd.cut и pd.qcut?

cut режет по заданным границам значений (интервалы могут содержать разное число наблюдений). qcut режет по квантилям — в каждой корзине примерно равное число наблюдений, а границы подбираются автоматически.

Как задать подписи корзин?

Параметр labels: pd.cut(s, bins=[...], labels=['A','B','C']). Меток на одну меньше, чем границ bins.

Какие интервалы у cut — включают границы?

По умолчанию правозакрытые: (a, b] — правая граница включена, левая нет. Поставь right=False для левозакрытых [a, b).

Задачи в тренажёре по теме

Вопросы с собеседований по теме

Смежные темы Python

Pandas: основы

Другие функции pandas

groupby · merge · pivot_table · apply · value_counts · drop_duplicates

Открыть Python-тренажёр (556 задач) →