У меня есть следующий образец df
import pandas as pd
DateChange = [list(['11/04/1911', '03/06/1919']),
list(['01/27/1918', '03/27/1984']),
list(['01/26/1912', '01/15/1918', '02/06/1917'])]
DateGrab = [list(['10.31.11', '03-02-1919']), list(['01-23-18', '03-23-1984']),
list(['1-22-12', '01.11.18', '2.2.17'])]
df= pd.DataFrame({'Text':['Hey 10.31.11 22|1|13 03-02-1919 d',
'things here 01-23-18 or 03-23-1984 then ',
'stuff 1-22-12 01.11.18 or 2.2.17 so so '],
'ID': ['E1','E2', 'E3'],
'DateChange' : DateChange,
'DateGrab' : DateGrab
})
Что выглядит как
DateChange DateGrab ID Text
0 [11/04/1911, 03/06/1919] [10.31.11, 03-02-1919] E1 Hey 10.31.11 22|1|13 03-02-1919 d
1 [01/27/1918, 03/27/1984] [01-23-18, 03-23-1984] E2 things here 01-23-18 or 03-23-1984 then
2 [01/26/1912, 01/15/1918, 02/06/1917] [1-22-12, 01.11.18, 2.2.17]E3 stuff 1-22-12 01.11.18 or 2.2.17 so so
Моя цель такова:
1) Если DateGrab
значение, например, 10.31.11
присутствует в Text
, замените это значение в Text
на значение DateChange
например, 11/04/1911
2) Создайте новый столбец
Таким образом, мой желаемый выводследующим образом
DateChange DateGrab ID Text New_Text
0 Hey 11/04/1911 22|1|13 03/06/1919 d
1 things here 01/27/1918 or 03/27/1984 then
2 stuff 01/26/1912 01/15/1918 or 02/06/1917 so so
Я попробовал приведенный ниже код, но он не работает
df['New_Text']= df['Text'].replace(df.Text, df.DateChange)
Как мне добиться желаемого результата?