Home > Software design >  Pandas .groups AttributeError: 'DataFrame' has no attribute 'groups
Pandas .groups AttributeError: 'DataFrame' has no attribute 'groups

Time:06-02

I have a grouped DataFrame and I'm wanting to get the groups so I can iterate over them later, but .groups is returning AttributeError: 'DataFrame' object has no attribute 'groups'

test = temp.groupby(['global company key','calendar year'])[['columnA','columnB', 'columnC']].sum()

Example of data:

                                   columnA     columnB     columnC
global company key  calendar year  
          1109          2010            20          30          20
          1109          2011            11          10          13
          1468          2010            50          10          16
          1468          2011             1           3           7

What I tried running:

test.groups

Am I doing something wrong? From the documentation, this should be extremely easy.

CodePudding user response:

When using group by, the object returned is a GroupBy object, which has the groups attribute that you used. BUT when applying any function on top of the Groupby object (sum() in your case) it changes back to a pd.DataFrame which does not have the .groups.

The alternative approach is to transform your dataframe to an iterable (df.to_dict() for example and then iterate over it.

  • Related