#python #pandas
#python #pandas
Вопрос:
Я использую pandas.qcut для разделения данных на 5 групп, и вы хотите пометить каждую группу на основе минимального и максимального значения qcut.
Например, я попробовал данные «возраста» из столбца фрейма данных.
df['age group'] = pd.qcut(df['age'], 5)
и это привело к
Categories (5, interval[float64]): [(37.999, 61.0] < (61.0, 67.0] < (67.0, 73.0] < (73.0, 78.0] < (78.0, 93.0]]
Ожидаемый результат — автоматически присваивать метку для каждой группы на основе минимального и максимального значения, например
Метка категории 1 будет «от 37.999 до 60.999» и т.д.
На данный момент я сделал маркировку вручную, просматривая каждый диапазон категорий. Как я должен определить метку, чтобы сделать ее ожидаемой? Спасибо!
Ответ №1:
Вы можете переопределить категории:
df['age group'] = pd.qcut(df['age'], 5)
df['age group'].cat.categories = [f'{i.left} to {i.right}' for i in df['age group'].cat.categories]
Комментарии:
1. Это работает хорошо, но я думаю, мне нужно изменить слово «to» на «<«, поскольку оно будет смещено, если правый предел является левым пределом другой группы. Спасибо!