title: Pandas groupby get the smallest string
body: <p>I have the following dataframe:</p>
  
  <pre><code>df = pd.DataFrame({'id': 3*['a']+4*['b'], 'name':['al', 'qwer', 'l', 'ewdbd', 'op', 'qsde', 'knmkln']})
  </code></pre>
  
  <pre><code>id    name
   a      al
   a    qwer
   a       l
   b   ewdbd
   b      op
   b    qsde
   b  knmkln
  </code></pre>
  
  <p>I want to groupby id and get the shortest string in name, if there are multiple strings with the minimum length it can be any, final dataframe would be:</p>
  
  <pre><code>id    name
  a      l
  b      op
  </code></pre>
  
  <p>How can this be achieved?</p>