Создайте список в groupby
и добавьте столбец Company name
для группировки по year
s по Series.dt.year
и компаниям, но сначала преобразуйте строки в даты по to_datetime
:
Compustat['datadate'] = pd.to_datetime(Compustat['datadate'], dayfirst=True)
df = (Compustat.groupby([Compustat['datadate'].dt.year,'Company name'])['Return_On_Capital']
.sum()
.sort_values()
.reset_index())
print (df)
datadate Company name Return_On_Capital
0 2007 AAR CORP -0.143515
1 2006 ALF -0.131695
2 2011 AAR CORP -0.115995
3 2007 ADC -0.097757
4 2006 ADC -0.091422
5 2010 ALPHARMA -0.053860