Imagine that you have 100+ columns, about 90% of features have about 20% missing values. The total dataset is about 10000+ rows. Will you impute missing values for categorical by most frequent values or just simply delete the missing values? As I found the PCA plot after imputation is two vertical lines, probably because of the imputation. After delete these features the plot seems normal (scatters around). Do you have any suggestions? Thanks.
It realy depends on the data, one good possible solution is to fill the missing values with the average of each feature (or the median). If your data is cleaned for obvious outliers and scaled it should not affect them much.
Another possible solution here with promising results would be to determine the k closest neighbors to each element and use their average or median value to fill the missing columns in the row. keep in mind the dimensionality curse will negatively affect this method