title: Keeping rows in Pandas where the same ID appears more than n times and convert to list per ID
body: <p>I have a <code>DataFrame</code> like below:</p>
  
  <pre><code>     VID  value
  1     1    xx
  2     2    xx1
  3     2    xx2
  4     2    xx3
  5     2    xx4
  6     3    xx
  7     3    xx
  8     3    xx
  9     4    zz1
  10    4    zz2
  11    4    zz3
  12    4    zz4
  13    4    zz5
  </code></pre>
  
  <p>I want to keep only the rows whose VID exists in more than n=3 cases. In the above example, I'd keep only rows 2-5 and 9-13 (since only the VIDs 2 and 4 appear more than 3 times). The 'value' field is irrelevant.</p>
  
  <p>After keeping the needed rows, I'd like to convert my data as a list of lists while appending an 'end' value at the end of each one:</p>
  
  <pre><code>[[xx1, xx2, xx3, xx4, 'end'], [zz1, zz2, zz3, zz4, zz5, 'end']]
  </code></pre>
  
  <p>Is it possible to get the above without a <code>for</code> loop?</p>