title: how to use pandas groupby with None and NaN treated as separate values
body: <p>Is it possible for pandas <code>groupby</code> to treat <code>None</code>s and <code>NaN</code>s as separate entities?</p>
  <p>Here is an example:</p>
  <pre><code>df = pd.DataFrame([
      [np.nan, 5],
      [None, 10],
      ['a', 7],
      [np.nan, 5],
      [None, 10]
  ])
  
  Out:
        0   1
  0   NaN   5
  1  None  10
  2     a   7
  3   NaN   5
  4  None  10
  
  df.groupby(0, dropna=False).mean()
  
  Out:
         1
  0       
  a    7.0
  NaN  7.5
  </code></pre>
  <p>However, I want to achieve the following result:</p>
  <pre><code>       1
  0       
  a    7.0
  NaN  5.0
  None 10.0
  </code></pre>
  <p>EDIT: an 'ideal' solution to this problem should:</p>
  <ul>
  <li>be generalisable to grouping with multiple columns</li>
  <li>does not (potentially) conflate other items. E.g. converting everything to strings would mean that None and 'None' become conflated (or '7' and 7, or...)</li>
  </ul>
  <p>Alternatively, explaining why the task cannot be done 'tidily' would also appreciated, so one can instead think about 'hacky' solutions.</p>