簡體   English   中英

如何在熊貓中創建“排名”列?

[英]How do I create a 'Rank' column in pandas?

我正在嘗試在熊貓中排列一列(col 1) 如果有平局,我只想查看這些記錄的另一列(col 2) ,然后進行平局。 如果即使在該列中它們相同,我也想隨機分配等級,但是每一行必須具有唯一的等級。

例:

col1  |  col 2 | Rank
 20   |  3     | 3
 22   |  2     | 2
 22   |  2.5   | 1
 3    |  1     | 4
 3    |  1     | 5
df['Rank'] = df.sort_values(by=['col1', 'col2'], ascending=False) \
               .reset_index() \
               .sort_values('index') \
               .index + 1

此代碼執行以下步驟:

  1. 將數據幀排序到一個新的臨時幀中
  2. 重置索引,將舊索引保留為新列,稱為“ index”。 確保您沒有任何名為'index'的起始列 如果您有一個,則新列稱為level_0 如果同時具有indexlevel_0 ,則代碼將引發異常。
  3. 根據舊索引對臨時數據幀進行排序(因此再次按原始順序)
  4. 將新索引(按我們想要的排名順序)用作新的“排名”列。 加1,因為您的問題似乎希望排名從1開始,而不是0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM