Порядок категорий в Pandas
Если у меток есть естественная
шкала, категории можно упорядочить.
Конструктор Categorical
собирает столбец с заданным
списком уровней и флагом порядка,
после чего сравнение между
ячейками становится осмысленным.
Зададим уровни low,
mid, high
и проверим, что больше
low:
import pandas as pd
levels = pd.Categorical(
['mid', 'low', 'high', 'mid'],
categories=['low', 'mid', 'high'],
ordered=True,
)
ranks = pd.DataFrame({'level': levels})
print(ranks['level']) # выведет 0 mid
# 1 low
# 2 high
# 3 mid
# Name: level, dtype: category
# Categories (3, object): ['low' < 'mid' < 'high']
print(ranks['level'] > 'low') # выведет 0 True
# 1 False
# 2 True
# 3 True
# Name: level, dtype: bool
В строке категорий видны знаки
< между метками: порядок
зафиксирован. Булев ряд показывает,
где уровень строго выше
low.
Создайте упорядоченный столбец
size со значениями
M, S, L
и шкалой S, M,
L. Выведите сравнение
с M: где размер больше
среднего.
Соберите таблицу с оценками
B, A, C
в упорядоченном столбце
grade от C
до A. Покажите,
где оценка не ниже B.
Из упорядоченных стадий
warm, cold,
hot по шкале
cold, warm,
hot получите
булев столбец: температура
выше cold.