<p>99% of the data is missing!!!???
Well, if your dataset has less than 100,000 examples, then you may want to remove those columns instead of imputing through any methods.
If you have a larger dataset then using mean imputing or knn imputing would be ...OK. These methods don't catch the statistics of your data and can eat up memory. Instead use Bayesian methods of Machine Learning like fitting a Gaussian Process through your data or a Variational Auto-Encoder to those sparse columns. 
<br>
1.) Here are a few links to learn and use gaussian processes to samples missing values from the dataset: <br>
<a href="http://web.stanford.edu/class/archive/ee/ee278/ee278.1152/lect06-2.pdf" rel="nofollow noreferrer">What is a Random Process</a>? <br>
<a href="https://pdfs.semanticscholar.org/de85/50f00947d8dbcb1385b339780597daf05d7f.pdf" rel="nofollow noreferrer">How to handle missing values with GP?</a></p>

<p>2.) You can also use a VAE to impute the missing values!!!<br>
<a href="https://arxiv.org/abs/1807.03653" rel="nofollow noreferrer">Try reading this paper</a></p>

<p>I hope this helps!</p>
Handle missing values : When 99% of the data is missing from most columns (important ones)
<p>I am facing a dilemma with a project of mine. Few of the variables don't have enough data that means almost 99% data observations are missing.</p>

<p>I am thinking of couple of options - </p>

<ul>
<li><p>Impute missing value with mean/knn imputation </p></li>
<li><p>Impute missing value with 0.</p></li>
</ul>

<p>I couldn't think of anything in this direction. If someone can help that would be great. </p>

<p>P.S. I am not feeling comfortable using mean imputation when 99% of the data is missing. Does someone have a reasoning for that? kindly let me know. </p>

<p>Data has 397576 Observations out of which below are the missing values
<a href="https://i.stack.imgur.com/jgJUo.png" rel="nofollow noreferrer">enter image description here</a></p>