Я искал ответ на следующий вопрос, но пока не нашел ответа.У меня есть большой набор данных, подобный этому небольшому примеру:
df =
A B
1 I bought 3 apples in 2013
3 I went to the store in 2020 and got milk
1 In 2015 and 2019 I went on holiday to Spain
2 When I was 17, in 2014 I got a new car
3 I got my present in 2018 and it broke down in 2019
Я хотел бы извлечь все значения> 1950 и получить его в качестве конечного результата:
A B C
1 I bought 3 apples in 2013 2013
3 I went to the store in 2020 and got milk 2020
1 In 2015 and 2019 I went on holiday to Spain 2015_2019
2 When I was 17, in 2014 I got a new car 2014
3 I got my present in 2018 and it broke down in 2019 2018_2019
Iсначала попытался извлечь значения, но не получил дальше, чем:
df["C"] = df["B"].str.extract('(\d+)').astype(int)
df["C"] = df["B"].apply(lambda x: re.search(r'\d+', x).group())
Но все, что я получаю, это сообщения об ошибках (я только начал python и работал с текстами несколько недель назад ..).Может ли кто-нибудь мне помочь?