17

年のランクを作成したいと思います (したがって、2012 年には、マネージャー B は 1 です。2011 年には、マネージャー B は再び 1 です)。私はしばらくパンダのランク関数に苦労しましたが、for ループに頼りたくありません。

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

私が抱えている問題は、追加のコードにあります(これは以前は関係ないと思いました):

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

何か案は?
これは私が使用している実際のデータ構造です。インデックスの再作成に問題がありました..

4

1 に答える 1