title: Preserve Dataframe column data type after outer merge
body: <p>When you merge two indexed dataframes on certain values using 'outer' merge, python/pandas automatically adds Null (NaN) values to the fields it could not match on. This is normal behaviour, but it changes the data type and you have to restate what data types the columns should have.</p>
  
  <p><code>fillna()</code> or <code>dropna()</code> do not seem to preserve data types immediately after the merge. Do I need a table structure in place?</p>
  
  <p>Typically I would run <code>numpy np.where(field.isnull() etc)</code> but that means running for all columns.</p>
  
  <p>Is there a workaround to this?</p>