s = pd.DataFrame([['2012','A',3],['2012','B',8],['2011','A',20],['2011','B',30]], columns=['Year','Manager','Return'])
Out[1]:
Year Manager Return
0 2012 A 3
1 2012 B 8
2 2011 A 20
3 2011 B 30
Я хотел бы создать ранг по году. Таким образом, в 2012 году менеджер B - 1. В 2011 году менеджер B снова 1.
Я некоторое время боролся с функцией ранжирования pandas и НЕ хочу прибегать к циклу for.
Проблема, с которой я столкнулся, - это дополнительный код (не думал, что это будет актуально раньше):
s = pd.DataFrame([['2012', 'A', 3], ['2012', 'B', 8], ['2011', 'A', 20], ['2011', 'B', 30]], columns=['Year', 'Manager', 'Return'])
b = pd.DataFrame([['2012', 'A', 3], ['2012', 'B', 8], ['2011', 'A', 20], ['2011', 'B', 30]], columns=['Year', 'Manager', 'Return'])
s= s.append(b)
s['Rank'] = s.groupby(['Year'])['Return'].rank(ascending=False)
raise Exception('Reindexing only valid with uniquely valued Index '
Exception: Reindexing only valid with uniquely valued Index objects
Любые идеи? Это реальная структура данных, которую я использую. Были проблемы с переиндексацией.