Как определить функцию для ярлыка pandas qcut?

#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» на «<«, поскольку оно будет смещено, если правый предел является левым пределом другой группы. Спасибо!