Предполагая, что это единственные шаблоны, вы можете использовать str.extract :
import pandas as pd
df = pd.DataFrame(data=['1990','1998.0','2006-02-12'], columns=['year'])
result = df.year.str.extract('^(\d{4})')
print(result)
Выход
0
0 1990
1 1998
2 2006
Шаблон^(\d{4})
переводится в первые 4 цифры в начальной строке, поэтому вы в основном извлекаете первые 4 цифры каждой строки в столбце.