title: How can I cleanly normalize data and then "unnormalize" it later?
body: <p>I am using Anaconda with a Tensorflow neural network. Most of my data is stored with <code>pandas</code>.<br>
  I am attempting to predict cryptocurrency markets. I  am aware that this lots of people are probably doing this and it is most likely not going to be very effective, I'm mostly doing it to familiarize myself with Tensorflow and Anaconda tools.<br>
  I am fairly new to this, so if I am doing something wrong or suboptimally please let me know.</p>
  
  <p>Here is how I aquire and handle the data:</p>
  
  <ol>
  <li>Download datasets from quandl.com into pandas <code>DataFrames</code></li>
  <li>Select the desired columns from each downloaded dataset</li>
  <li>Concatenate the <code>DataFrames</code></li>
  <li>Drop all NaNs from the new, merged <code>DataFrame</code></li>
  <li>Normalize each column (independently) to <code>0.0-1.0</code> in the new <code>DataFrame</code> using the code <br><code>df = (df - df.min()) / (df.max() - df.min())</code></li>
  <li>Feed the normalized data into my neural network</li>
  <li>Unnormalize the data (This is the part that I haven't implemented)</li>
  </ol>
  
  <p>Now, my question is, how can I cleanly normalize and then unnormalize this data? I realize that if I want to unnormalize data, I'm going to  need to store the initial <code>df.min()</code> and <code>df.max()</code> values, but this looks ugly and feels cumbersome.<br>
  I am aware that I can normalize data with <code>sklearn.preprocessing.MinMaxScaler</code>, but as far as I know I can't unnormalize data using this.<br></p>
  
  <p>It might be that I'm doing something fundamentally wrong here, but I'll be very surprised if there isn't a clean way to normalize and unnormalize data with Anaconda or other libraries.</p>