Как сказано в заголовке, я ищу идеальное решение для замены точной строки в серии без учета регистра.
ls = {'CAT':'abc','DOG' : 'def','POT':'ety'}
d = pd.DataFrame({'Data': ['cat','dog','pot','Truncate','HotDog','ShuPot'],'Result':['abc','def','ety','Truncate','HotDog','ShuPot']})
d
В приведенном выше коде ref содержит пару "ключ-значение", где ключ - это существующее значение в столбце фрейма данных, а значение - это значение, которое нужно заменить.
Проблема в этом случае заключается в том, что служба, передающая словарь, всегда содержит ключ словаря в верхнем регистре, тогда как фрейм данных может иметь значение в нижнем регистре.
ожидаемый результат сохраняется в столбце результатов.
Я попытался включить re.ignore = True
, который изменяет последние 2 значения. следующий код, но он работает не так, как ожидалось. он также преобразует значения в верхний регистр из предыдущей итерации.
for k,v in ls.items():
print (k,v)
d['Data'] = d['Data'].astype(str).str.upper().replace({k:v})
print (d)
Буду признателен за любую помощь.