Я пытаюсь заменить значения в определенном диапазоне другим значением.
У меня есть словарь, содержащий символ в качестве ключа и верхний диапазон в качестве значения, подобного следующему -
replace_dict = {
'A': 10,
'B': 21,
'C': 34,
'D': 49,
'E': 66,
'F': 85,
'G': 107,
'H': 132,
'I': 160,
'J': 192,
'K': 229,
'L': 271,
'M': 319,
'N': 395,
'O': 495,
'P': 595,
'Q': 795,
'R': 1100
}
Мне нужно заменить значения соответствующими клавишами, попадающими в диапазон.
Например:
Values in the range of 1-10 will be replaced by 'A',
Values in the range of 11-21 will be replaced by 'B'
Values in the range of 22-34 will be replaced by 'C'
Values in the range of 35-50 will be replaced by 'D'
Values in the range of 51-66 will be replaced by 'E'
Я написал следующий код:
k=1
for i, j in replace_dict.items():
data.loc[data['my_col'].between(k,j)] = i
k=j+1
Этот код показывает TypeError: '>=' not supported between instances of 'str' and 'int'
.
Тем не менее, строка data.loc[data['my_col'].between(1,10)] = 'A'
работает нормально.
Что является хорошим решением для этой проблемы?