0

Is there a way to groupby only groups with 2 or more rows?

Or can I delete groups from a grouped dataframe that contains only 1 row?

Thank you very much for your help!

goldie
  • 13
  • 4

1 Answers1

0

Yes there is a way. Here is an example below

df = pd.DataFrame(
    np.array([['A','A','B','C','C'],[1,2,1,1,2]]).T
    , columns= ['type','value']
    )
groups = df.groupby('type')
groups_without_single_row_df = [g for g in groups if len(g[1]) > 1]

groupby return a list of tuples. Here, 'type' (A, b or C) is the first element of the tuple and the subdataframe the second element.

You can check length of each subdataframe with len() as in [g for g in groups if len(g[1]) > 1] where we check the lengh of the second element of the tuple. If the the len() is greater than 1, it is include in the ouput list.

Hope it helps

Julien
  • 33
  • 5