Whether to replace NaN values in result column
There is no correct way as dealing with nan values it depends on the dataset.But i would suggest rather than doing single imputation you could do multiple imputation using IterativeImputer in sklearn.
As very less target variables are missing it won't make a significant impact unless the problem statement is sensitive to finding outliers like fraud detection.
Refer Iterative Imputation