, groupby + transform. , , 2017, . groupby + transform, np.where.
g = df.groupby('DEPT')
i = g.DOMAIN.transform('last')
j = g.ID.transform('last').astype(str).str[:4] == '2017'
df.DOMAIN = np.where(j, i, df.DOMAIN)
df
ID DEPT DOMAIN
0 201606 271 GE
1 201606 896 FR
2 201608 271 GE
3 201609 271 GE
4 201701 896 FR
5 201606 271 GE