У меня есть серия струн Pandas.Я хочу сделать несколько замен для нескольких подстрок в строке , см .:
testdf = pd.Series([
'Mary went to school today',
'John went to hospital today'
])
to_sub = {
'Mary': 'Alice',
'school': 'hospital',
'today': 'yesterday',
'tal': 'zzz',
}
testdf = testdf.replace(to_sub, regex=True) # does not work (only replaces one instance per row)
print(testdf)
В вышеприведенном случае желаемый вывод:
Alice went to hospital yesterday.
John went to hospizzz yesterday.
где примечаниев первой строке было три подстановки из словаря.
Как я могу выполнить это эффективно, кроме выполнения этой строки за строкой (в цикле for)?
Я пробовал df.replace(...)
, как и многие другиеответы на другие вопросы, но это заменяет только одну подстроку, результат выглядит так: Alice went to school today
, где school
и today
не были заменены ..
Еще одна вещь, которую следует отметить, что замены должныслучаются одновременно для любого отдельного ряда.(см. hospital
в первом ряду не заменяется секунда время на hospizzz
, что будет неправильно ).