В анализе данных часто нужно превратить числа в удобные категории. Например, из возраста сделать группы «дети», «молодые» и «взрослые», а из зарплат – интервалы «низкий доход», «средний» и «высокий». Это помогает проще строить графики, сводные таблицы и готовить данные для моделей.
В pandas для этого есть два основных инструмента.
📌 pd.cut()
Этот метод делит данные на интервалы. Можно задать количество интервалов, и pandas разобьёт значения автоматически, либо вручную указать границы.
import pandas as pd
ages = [5, 17, 25, 37, 45, 60]
cats = pd.cut(ages, bins=[0, 18, 35, 60],
labels=["дети", "молодые", "взрослые"])
print(cats)
Результат:
['дети', 'дети', 'молодые', 'молодые', 'взрослые', 'взрослые']
📌 pd.qcut()
В отличие от cut, здесь деление идёт по квантилям. Это значит, что в каждой категории окажется примерно одинаковое количество наблюдений. Очень удобно, когда распределение данных неравномерное.
data = [10, 20, 30, 40, 50, 100]
cats = pd.qcut(data, q=3)
print(cats)
Данные делятся на 3 категории с равным числом элементов в каждой.
Таким образом, cut полезен, когда у вас есть заранее заданные границы или нужно контролировать интервалы вручную. А qcut лучше использовать, если важно, чтобы группы были сбалансированы по количеству данных. Оба метода делают работу с данными более наглядной и удобной.