Filter out groups with a length equal to one

group-by, pandas, python

Solution

As of pandas 0.12 you can do:

>>> grouped.filter(lambda x: len(x) > 1)

     A  B
0  foo  0
2  foo  2
3  foo  3

Problem

I am creating a `groupby` object from a Pandas `DataFrame` and want to select out all the groups with > 1 size. Example: ``` A B 0 foo 0 1 bar 1 2 foo 2 3 foo 3 ``` The following doesn't seem to work: ``` grouped = df.groupby('A') grouped[grouped.size > 1] ``` Expected Result: ``` A foo 0 2 3 ```

Original source