Search code examples
pandaspandas-groupby

How to get the first group in a groupby of multiple columns?


I've been trying to figure out how I can return just the first group, after I apply groupby.

My code looks like this:

gb = df.groupby(['col1', 'col2', 'col3', 'col4'])['col5'].sum()

What I want is for that first first group to output. I've been trying the get_group method but it keeps failing (maybe because I am grouping by multiple columns?)

Here is an example of my output:

col1  col2  col3   col4  'sum'
 1     34   green   10    0.0
            yellow  30    1.5 
            orange  20    1.1 
 2     89   green   10    3.0 
            yellow   5    0.0 
            orange  10    1.0

What I want to be returned is just this:

col1  col2  col3   col4  'sum'
 1     34   green   10    0.0
            yellow  30    1.5 
            orange  20    1.1 

(Note the 'sum' column I just added here to make it clear what that last column was, but pandas does not actually name that column)


Solution

  • You can using get_group with groups

    g=df.groupby(['col1','col2'])
    
    g.get_group((list(g.groups)[0])).groupby(['col3','col4'])['col5'].sum()