在Pandas中實作DENSE_RANK功能的等效方法
Pandas中經常需要對分組內的值進行排名,並將重複值視為具有相同排名。為此,我們可以利用pd.Series.rank
函數,特別是使用'dense'
方法。
以下面的資料框為例:
年份 | 数值 |
---|---|
2012 | 10 |
2013 | 20 |
2013 | 25 |
2014 | 30 |
我們的目標是建立一個名為「排名」的新列,根據「年份」列分配密集排名,結果如下:
年份 | 数值 | 排名 |
---|---|---|
2012 | 10 | 1 |
2013 | 20 | 2 |
2013 | 25 | 2 |
2014 | 30 | 3 |
為此,我們可以使用以下程式碼:
df['排名'] = df.年份.rank(method='dense').astype(int)
pd.Series.rank
函數計算Series中每個元素的排名。透過指定'dense'
作為方法,我們指示它為具有相同值的元素分配相同的排名。最後,我們使用.astype(int)
將結果轉換為整數資料類型。
程式碼的輸出將在資料框中產生一個新的「排名」列,如下所示:
<code> 年份 数值 排名 0 2012 10 1 1 2013 20 2 2 2013 25 2 3 2014 30 3</code>
以上是如何在 Pandas 中實現 DENSE_RANK 功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!