From personal experience, I would say a good first step would be to try to understand why there's data missing in the first place.
There are scenarios in which understanding this could help you figure out an approach to deal with it.
For instance, I've dealt with datasets in the past where missing values simply represented 0, which allowed me to fill these fields with accurate values.
It might also help you answer questions like: "will removing these values introduce selection bias?".
After that there a many techniques you could consider. Like you mentioned, you could
- remove the data (if the data remaining would still be a good representation of the population, and you are left with enough rows to analyze)
- fill the fields through a simple metric like the mean of median, though the quality of your dataset will suffer (especially if you're talking about a significant amount of rows)
There are also more sophisticated techniques like:
- developing a separate model to predict the missing values
- many more
In the end, what you choose as method depends heavily on your situation and dataset, but some good investigation into your data (if the scope of your project allows) to help you understand why these values are missing would be a good first step (based on my personal experience)