2015-05-24 31 views
5

Açık artırma kimlikleri ve teklif fiyatları olan bir veri karegim var. dataframe (azalan) açık artırma id (artan) ve teklif fiyata göre sıralanır:Pandalar sütun değerine göre sırala

Auction_ID Bid_Price 
123   9 
123   7 
123   6 
123   2 
124   3 
124   2 
124   1 
125   1 

ben teklif fiyatları açık artırma id rütbeleri 'Auction_Rank' adlı bir sütun eklemek istiyorum:

Auction_ID Bid_Price Auction_Rank 
123   9   1 
123   7   2 
123   6   3 
123   2   4 
124   3   1 
124   2   2 
124   1   3 
125   1   1 

cevap

16

İşte

Sen Auction_ID üzerine GroupBy ve ascending=False

ile Bid_Price üzerinde rank() sürebilir Pandalar-şekilde bunu yapmak için tek yoldur
In [68]: df['Auction_Rank'] = df.groupby('Auction_ID')['Bid_Price'].rank(ascending=False) 

In [69]: df 
Out[69]: 
    Auction_ID Bid_Price Auction_Rank 
0   123   9    1 
1   123   7    2 
2   123   6    3 
3   123   2    4 
4   124   3    1 
5   124   2    2 
6   124   1    3 
7   125   1    1