title: Pandas Rounds int64 number when loading dictionaries
body: <p>I am loading a list of dictionaries into a pandas dataframe, i.e. if d is my list of dicts, simply:</p>
  
  <p><code>pd.DataFrame(d)</code></p>
  
  <p>Unfortunately, one value in the dictionary is a 64-bit integer. It is getting converted to float because some dictionaries don't have a value for this column and are therefore given <code>NaN</code> values, thereby converting the entire column to a float.</p>
  
  <p>For example:</p>
  
  <pre><code>                col1
  0       NaN
  1       NaN
  2       NaN
  3       0.000000e+00
  4       1.506758e+18
  5       1.508758e+18
  </code></pre>
  
  <p>If I try to <code>fillna</code> all the <code>NaN</code>s to zero then recast the column <code>astype(np.int64)</code> returns values that are all slightly off (due to rounding). How can I avoid this and keep my original 64-bit values intact?</p>