Rank by grouby column aggregate
问题 I want to create a column manager_rank that ranks a manager by the sum of returns. I have come up with one solution posted below but was hoping if someone else had something more elegant. import pandas as pd df = pd.DataFrame([['2012', 'A', 1], ['2012', 'B', 4], ['2011', 'A', 5], ['2011', 'B', 4]], columns=['year', 'manager', 'return']) Desired result: year manager return manager_rank 0 2012 A 1 2 1 2011 A 5 2 2 2012 B 4 1 3 2011 B 4 1 回答1: df['ranking'] = df.groupby('manager')['return']