title: Pandas, group by count and add count to original dataframe?
body: <p>When trying to count rows with similar 'kind' in data frame:</p>
  
  <pre><code>import pandas as pd
  
  items = [('aaa','aaa text 1'), ('aaa','aaa text 2'), ('aaa','aaa text 3'),
           ('bb', 'bb text 1'), ('bb', 'bb text 2'), ('bb', 'bb text 3'), 
           ('bb', 'bb text 4'),
           ('cccc','cccc text 1'), ('cccc','cccc text 2'),
           ('dd', 'dd text 1'),
           ('e', 'e text 1'),
           ('fff', 'fff text 1'),
          ]
  
  df = pd.DataFrame(items, columns=['kind', 'msg'])
  df
  
      kind    msg
  0   aaa     aaa text 1
  1   aaa     aaa text 2
  2   aaa     aaa text 3
  3   bb      bb text 1
  4   bb      bb text 2
  5   bb      bb text 3
  6   bb      bb text 4
  7   cccc    cccc text 1
  8   cccc    cccc text 2
  9   dd      dd text 1
  10  e       e text 1
  11  fff     fff text 1
  </code></pre>
  
  <p>This code works:</p>
  
  <pre><code>df = df[['kind']].groupby(['kind'])['kind'] \
                           .count() \
                           .reset_index(name='count') \
                           .sort_values(['count'], ascending=False) \
                           .head(5)
  
  df
  </code></pre>
  
  <p>Resulting in:</p>
  
  <pre><code>    kind      count
      0   aaa   1
      1   bb    1
      2   cccc  1
      3   dd    1
      4   e     1
  </code></pre>
  
  <p>Yet, how can one get a data frame with all columns as in original one plus 'count' column? So the result should have  columns 'kind', 'msg', 'count' in this order?</p>
  
  <p>Also, how to sort this resulting data frame in descending order of count?</p>