title: Drop NaN rows except one column is not duplicated in Pandas
body: <p>Given a dataframe as follows:</p>
  <pre><code>   city district
  0    bj       dc
  1    bj       xc
  2    bj       hd
  3    bj       cy
  4    bj      NaN
  5    sh       pd
  6    sh       hp
  7    sh       xh
  8    sh      NaN
  9    gz      NaN
  10   sz      NaN
  </code></pre>
  <p>How could I remove rows whose <code>district</code> is <code>NaN</code>, but except for the city which has <code>district</code>? For example, <code>gz</code> and <code>sz</code> won't be removed since it only has <code>NaN</code> district, row <code>4</code> and <code>8</code> will be removed since they have <code>district</code> values which are not <code>NaN</code>s.</p>
  <p>The expected result:</p>
  <pre><code>  city district
  0   bj       dc
  1   bj       xc
  2   bj       hd
  3   bj       cy
  4   sh       pd
  5   sh       hp
  6   sh       xh
  7   gz      NaN
  8   sz      NaN
  </code></pre>
  <p>Many thanks!</p>