Я пытаюсь заменить некоторые значения в столбце панд (фрейме данных) с помощью регулярного выражения, но я хочу применить регулярное выражение на основе значений в другом столбце.
Базовый пример;
index col1 col2
1 yes foobar
2 yes foo
3 no foobar
Используя следующее;
df.loc[df['col1'] == 'yes', 'col2'].replace({r'(fo)o(?!bar)' :r'\1'}, inplace=True, regex=True)
Я ожидал следующего результата;
index col1 col2
1 yes foobar
2 yes fo
3 no foobar
Однако, похоже, это не работает? Он не выдает никаких ошибок или settingwithcopy
предупреждений, он просто ничего не делает. Есть ли альтернативный способ сделать это?