I am new to data science. I was looking into some datasets and I saw some values like -99, which I discovered later that it means that there is a missing value. Does this mean the same thing as NaN? If it is the same thing, why do we use -99 instead of NaN?
No, it is not the same. It may have that meaning in that particular dataframe, but don't take that as a rule.
I'd recommend you replace that magic number with actual NaNs, and then try to find the best possible way of filling up the missing values.