df['Percnt rank'] = df.reset_index().groupby(['index', 'Category'])['SCORE'
    ].apply(lambda x: (x.rank(method='dense') - 1) / (x.nunique() - 1)).values
Процентный рейтинг Pandas на основе групп в каждом индексе