У меня есть набор данных, который содержит категорическую характеристику, изображающую диапазоны.Категории этой функции - это упорядоченные диапазоны значений.
Однако в этом конкретном наборе данных есть одна категория, которая охватывает несколько других категорий.Фрагмент кода ниже показывает пример такого случая.
Обратите внимание на категорию 11-30
spans 11-20
и 21-30
.
data = ['1-10', '11-20','1-10','11-30','11-20','1-10','21-30','30+']
cat = pd.Categorical(data, categories=['1-10', '11-20','21-30','11-30', '30+'], ordered=True)
Мой подход заключается в том, чтобы сохранить большую категорию и сгруппировать две меньшие категории в эту.Один из способов сделать это - просто заменить все вхождения этих записей значением более широкой категории, как показано здесь:
s = pd.Series(cat)
s.replace(
{'11-20': '11-30',
'21-30':'11-30'
})
print(s)
, который выводит:
0 1-10
1 11-30
2 1-10
3 11-30
4 11-30
5 1-10
6 11-30
7 30+
dtype: object
Однако, это кажетсякак очень грубое решение проблемы, которая должна была появиться несколько раз в истории.
Мой вопрос таков: Каков наилучший способ исправления перекрывающихся категорий с помощью панд?