На основе DataFrame, который содержит даты
import pandas as pd
df = pd.DataFrame({'month':['2','5','8'],'year':['2001',' 89','1999']})
print(df)
month year
0 2 2001
1 5 89
2 8 1999
Я хочу префикс всех экземпляров года, состоящих только из 2 цифр, на 19
, так что результирующий DataFrame будет
month year
0 2 2001
1 5 1989
2 8 1999
Я пытался
pattern = r'[^\d]*\d{2}[^\d]*'
replacement = lambda m: '19'+m
df.year = df.year.str.replace(pattern,replacement)
print(df)
month year
0 2 NaN
1 5 NaN
2 8 NaN
Что не работает. В чем проблема?