title: what is different between groupby.first, groupby.nth, groupby.head when as_index=False
body: <p><strong>Edit:</strong> <em>the rookie mistake I made in string <code>np.nan</code> having pointed out by @coldspeed, @wen-ben, @ALollz. Answers are quite good, so I don't delete this question to keep those answers.</em>    </p>
  
  <p><strong>Original:</strong><br>
  I have read this question/answer <a href="https://stackoverflow.com/questions/30004815/whats-the-difference-between-groupby-first-and-groupby-head1">What&#39;s the difference between groupby.first() and groupby.head(1)?</a>    </p>
  
  <p>That answer explained that the differences are on handling <code>NaN</code> value. However, when I call <code>groupby</code> with <code>as_index=False</code>, they both pick <code>NaN</code> fine.   </p>
  
  <p>Furthermore, Pandas has <code>groupby.nth</code> with similar functionality to <code>head</code>, and <code>first</code>    </p>
  
  <p>What are difference of <code>groupby.first(), groupby.nth(0), groupby.head(1)</code> with <code>as_index=False</code>?    </p>
  
  <p>Example below:</p>
  
  <pre><code>In [448]: df
  Out[448]:
     A       B
  0  1  np.nan
  1  1       4
  2  1      14
  3  2       8
  4  2      19
  5  2      12
  
  In [449]: df.groupby('A', as_index=False).head(1)
  Out[449]:
     A       B
  0  1  np.nan
  3  2       8
  
  In [450]: df.groupby('A', as_index=False).first()
  Out[450]:
     A       B
  0  1  np.nan
  1  2       8
  
  In [451]: df.groupby('A', as_index=False).nth(0)
  Out[451]:
     A       B
  0  1  np.nan
  3  2       8
  </code></pre>
  
  <p>I saw that `firs()' resets index while the other 2 doesn't. Besides that, is there any differences?</p>