In general, if we don't know the reason of missing data, it's hard to treat them properly. This reason can highly affect our conclusion. So my first recommendation is always trying to figure out why the data is missing in the first place.
Normally, there are 3 kinds of missing data: (Definitions on Wikipedia)
- Missing completely at random
Values in a data set are missing completely at random (MCAR) if the events that lead to any particular data-item being missing are independent both of observable variables and of unobservable parameters of interest, and occur entirely at random. When data are MCAR, the analysis performed on the data is unbiased; however, data are rarely MCAR.
Missing at random (MAR) occurs when the missingness is not random, but where missingness can be fully accounted for by variables where there is complete information. Since MAR is an assumption that is impossible to verify statistically, we must rely on its substantive reasonableness.
Missing not at random (MNAR) (also known as nonignorable nonresponse) is data that is neither MAR nor MCAR (i.e. the value of the variable that's missing is related to the reason it's missing).
Also from that Wikipedia page:
Missing data reduces the representativeness of the sample and can therefore distort inferences about the population. Generally speaking, there are three main approaches to handle missing data: (1) Imputation—where values are filled in the place of missing data, (2) omission—where samples with invalid data are discarded from further analysis and (3) analysis—by directly applying methods unaffected by the missing values.
"In the case of MCAR, the missingness of data is unrelated to any study variable", so you can just drop them or do some reasonable imputation and an continue to analyze the data. I know only one test to test MCAR, which is Little's Test.
I don't know how to deal with the second and third cases, so all I can say is please treat them with care. If the ratio of missing data is too large, I simply drop the whole dataframe.