avatar
Мир аналитика данных
@analysts_world
20.02.2024 08:37
Меня преследует.. биннинг.

Задали тут мне рабочую задачку на исследование среднего ценового сегмента в разрезе определенных категорий. И попросили сделать с шагом в 10 тыс руб. А там суммы до 500 тыс доходят!

Я подумала, ну не вручную же через loc прописывать! И с помощью функции cut я когда прописывала по группам, то тоже вручную определяя интервалы (вот тут смотрим). Но тогда количество этих интервалов было адекватное 😜
Думала, думала и придумала нагуглила, что можно сделать.

💡В игру опять вступает cut, но теперь c дополнительным вариантом для определения интервалов!
Вот, что получается:
У нас есть какой-то датафрейм, создадим его из словаря 
df = pd.DataFrame({'deal_id': [11111, 11112,11113,11114,11115,11116,11117,11118,11119,11120],
'amount': [10000,20050,30500,45000,50001,62000,70000,81000,92000,100500]})

Пропишем интервал с нуля, частотой в 10 тысяч и пределом в 500 тыс (end=500000)
interval_range = pd.interval_range(start=0, freq=10000, end=500000)
df['type'] = pd.cut(df['amount'], bins=interval_range)


И вуаля! Собственные метки мы определять не можем, но меня и готовые автоматические устраивают (то, что в type прописалось).
👍 24
6
13 16 2.4K

Обсуждение 13

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram