0

This is trivial, but I can't figure it out and I'm not sure what to search for. Best described by code:

Data frame:

df = pd.DataFrame(data={'class': ['a','a','a','b','b'],
                        'score': [1,0,1,1,0]})

  class  score
0     a      1
1     a      0
2     a      1
3     b      1
4     b      0

Desired output:

  class  score  gsum
0     a      1  2
1     a      0  2
2     a      1  2
3     b      1  1
4     b      0  1

Dumb way:

xd = []
for n,g in df.groupby('class'):
    xd.append([sum(g['score']) for _ in len(g['score'])])
df['gsum'] = [item for sublist in xd for item in sublist]

Smart way: ?

Spine Feast
  • 213
  • 1
  • 10

0 Answers0