Меня преследует.. биннинг.
Задали тут мне рабочую задачку на исследование среднего ценового сегмента в разрезе определенных категорий. И попросили сделать с шагом в 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 прописалось).
Обсуждение 13
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram