在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 |
为此,我们可以使用以下代码:
<code class="language-python">df['排名'] = df.年份.rank(method='dense').astype(int)</code>
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中文网其他相关文章!