title: Pandas Merge with NaN in key
body: <p>I'm trying to merge 2 dataframes that both have NaN in their key column.  NaN does not equal NaN, but yet the two NaNs in the "key" columns are matching.  Why is that, and how can I get them not to match?  I'm using python 3.6.</p>
  
  <pre><code>df1 = pd.DataFrame({'key': [3,2,1,1,np.nan,5], 'value': np.random.randn(6)})
  df2 = pd.DataFrame({'key': [1,3,np.nan], 'value': np.random.randn(3)})
  
  df = pd.merge(df1, df2, on='key', how='left')
  
  print(df1)
  print(df2)
  print(df)
  
     key     value
  0  3.0  0.642917
  1  2.0  1.347245
  2  1.0 -1.381299
  3  1.0  1.839940
  4  NaN  0.770599
  5  5.0 -0.137404
  
     key     value
  0  1.0  0.580794
  1  3.0  0.569973
  2  NaN -0.078336
  
     key   value_x   value_y
  0  3.0  0.642917  0.569973
  1  2.0  1.347245       NaN
  2  1.0 -1.381299  0.580794
  3  1.0  1.839940  0.580794
  4  NaN  0.770599 -0.078336
  5  5.0 -0.137404       NaN
  
  np.nan == np.nan
  Out[25]: False
  </code></pre>