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

Когда нужной категории в таблице ещё нет

В таблице хранится точное время доставки:

  A B
1 order_id delivery_min
2 701 18
3 702 27
4 703 31
5 704 44
6 705 55
7 706 84

Руководитель спрашивает: «Сколько было быстрых, обычных и долгих доставок?» Таких столбцов в исходной таблице нет. Что делать?
В этом случае необходимо превратить числовую шкалу в интервалы.

Например:

  • до 30 минут включительно — быстрая;
  • 31–60 минут — обычная;
  • больше 60 минут — долгая.

Это называется категоризацией числового признака.
 

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


Основные параметры
Параметр Назначение
x данные (массив/Series)
bins число интервалов или список границ
labels свои подписи для интервалов
right=False интервалы вида [a, b), а не (a, b]
include_lowest=True включить самую нижнюю границу
return_bins=True вернуть границы интервалов


Теперь исходное точное время осталось в таблице, а рядом появился новый категориальный признак.


Проверь себя

По заданным границам куда попадёт доставка длительностью 31 минуту?


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

Первая группа заканчивается на 30 минутах. Поэтому 31 минута уже относится ко второй группе.

При категоризации значения около границ нужно проверять специально: именно там проще всего допустить ошибку.

Печать