title: Replacing NaNs in DataFrame not working due to non-float NaN values
body: <p>I'm trying to write a DataFrame to an Excel file using xlsxwriter and am having some issues with NaN values not being filled properly. </p>
  
  <p>Regardless of whether I use <code>df.fillna</code>, <code>df.replace</code> or the <code>na_rep</code> option on the writer, a few columns retain any NaN values in the DataFrame. </p>
  
  <p>Investigating using <code>pdb.set_trace()</code>, I found the following:</p>
  
  <pre><code>(Pdb) df['col_name'][0]
  Decimal('NaN')
  (Pdb) Decimal(np.nan)
  Decimal('NaN')
  (Pdb) df['col_name'][0]==Decimal(np.nan)
  False
  (Pdb) na=df['col_name'][0]
  (Pdb) na
  Decimal('NaN')
  (Pdb) na==df['col_name'][0]
  False
  (Pdb) df['col_name'][0]
  Decimal('NaN')
  </code></pre>
  
  <p>How can I identify these values to replace them if I can't define them?</p>