大熊猫按列值排名

时间:2015-05-24 16:33:50

标签: pandas dataframe rank

我有一个包含拍卖ID和出价的数据框。数据框按拍卖ID(升序)和出价(降序)排序:

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

我想添加一个名为' Auction_Rank'按出价排名竞价ID:

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

1 个答案:

答案 0 :(得分:32)

这是在Pandas-way中实现它的一种方法

您可以Auction_IDgroupby Bid_Price ascending=False 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

foo