Pandas 的 rank 方法用于对数据进行排名,可以应用于 Series 或 DataFrame 对象。这个方法非常灵活,支持多种排名规则,并且适用于处理数值型数据。以下是关于 rank 方法的一些关键点:
基本用法:你可以通过指定列来为该列的数据分配排名值。
pythondf['rank'] = df['column_name'].rank()
method 参数:此参数允许你选择不同的排名策略:
'average':默认值,相同值的排名取平均值。'min':相同值的排名取最小值。'max':相同值的排名取最大值。'first':相同值的排名按它们在数据中出现的顺序分配。'dense':与 'min' 类似,但不会跳过排名值(即如果两个元素并列第一,下一个元素将排第二而不是第三)。ascending 参数:决定是升序还是降序排名,默认是 True(升序)。如果你想让最大的数排名最高,则设置 ascending=False。
示例: 如果你有一个 DataFrame 并想根据某一列的值来进行排名,可以这样做:
pythonimport pandas as pd
data = {'ID': [1, 2, 3, 4, 5], 'Score': [85, 90, 85, 95, 90]}
df = pd.DataFrame(data).sort_values('Score', ascending=False)
# 使用默认的 'average' 方法进行排名
df['rank'] = df['Score'].rank(method='average')
# 如果想要大的数排名靠前,使用降序
df['rank_desc'] = df['Score'].rank(method='dense', ascending=False)
print(df)
python ID Score rank rank_desc
3 4 95 5.0 1.0
4 5 90 3.5 2.0
1 2 90 3.5 2.0
0 1 85 1.5 3.0
2 3 85 1.5 3.0
本文作者:君逍遥
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!