У меня есть и словарь, и фрейм данных, и я пытаюсь перебрать каждую строку фрейма данных, сравнивая определенный столбец df со значением соответствующего ключа словаря.Я делаю это через цикл.Однако я продолжаю получать ошибки.
Одна ошибка типа, которую я получаю, это: объекты 'Series' являются изменяемыми, поэтому их нельзя хэшировать.Я понимаю происхождение этой ошибки, однако, когда я пытаюсь изменить ключи словаря на строковые типы, они остаются как типы объектов.Если я пытаюсь изменить весь словарь на строковый тип, то при запуске цикла for я получаю ошибку типа строковых индексов, которые должны быть целыми числами.
Спасибо за любую помощь, не знаю, в каком направлении идти сюда.
Вот словарь (otc_dict):
{'ALIVE MENS 50+': 0.25,
'AM LACTATE 12% LOTION': 0.11089,
'AMOX/CLAV 875MG TABS': 1.32,
'APAP 325MG TABS (GH).': 0.03,
'APAP 500MG (GH)': 0.05,
'AQUAPHOR OINT': 0.11105999999999999,
'AVEENO ULT-CALM SPF 15': 0.14125,
'B-COMPLEX (GH)': 0.05,
'BABY SHAMPOO': 0.01329,
'BABY SHAMPOO J&J': 0.01995,
'BACITRACIN FOIL PACK': 0.208,
'BACLOFEN 10MG TABS': 0.185,
'BATH CHAIR WITH BACK': 69.95,
'BENZONATATE 100MG CAP': 0.49833,
'BENZOYL PEROX 5% WASH 227*': 0.08789}
Вот кадр данных (aug_new):
Rx Number Drug Name Price Per
0 0903-333 00 MELATONIN 5MG 0.083333
1 0903-460 00 MULTIVI W/MINERALS (GH) 0.060000
2 0903-632 00 RISPERIDONE 2MG TAB* 0.531667
3 0903-633 00 CLONIDINE 0.1MG TAB* 0.165833
4 0903-634 00 RISPERIDONE 3MG TAB* 0.598333
5 0904-192 00 MULTIVITAMINS TABS (GH) 0.050000
6 0895-624 06 VIT D3 2000IU TABS 0.100000
7 0896-257 03 MULTIVI W/MINERALS (GH) 0.060000
Вот цикл for, который я пытаюсь выполнить:
outliers = []
for row in aug_new.index:
price = aug_new['Price Per']
drug = aug_new['Drug Name']
value = otc_dict[drug]
rx = aug_new['Rx Number']
if price != value:
outliers.append(rx)
По сути, я просто пытаюсь составить список номеров Rx, чья «цена за» не соответствует цене, соответствующей названию препарата в словаре.