📅  最后修改于: 2023-12-03 15:19:10.045000             🧑  作者: Mango
在数据分析中,我们常常需要对数据框中的某一列进行排名操作,以确定数据的相对大小。本文将介绍如何使用Python为数据框添加排名列。
pandas库中的rank方法可以为数据框中的一列数据进行排名操作。具体代码如下:
import pandas as pd
# 创建数据框
data = {"name":["Tom","Jack","Steve","Ricky","Lisa"],
"score":[99,85,80,90,88]}
df = pd.DataFrame(data)
# 对分数进行排名
df['rank'] = df['score'].rank(ascending=False)
print(df)
输出结果如下:
name score rank
0 Tom 99 1.0
1 Jack 85 4.0
2 Steve 80 5.0
3 Ricky 90 2.0
4 Lisa 88 3.0
numpy库中的argsort方法可以获取数组中元素从小到大排序的索引值。利用该索引值即可为数据框中的一列数据进行排名操作。具体代码如下:
import numpy as np
import pandas as pd
# 创建数据框
data = {"name":["Tom","Jack","Steve","Ricky","Lisa"],
"score":[99,85,80,90,88]}
df = pd.DataFrame(data)
# 对分数进行排名
df['rank'] = np.argsort(df['score'])[::-1] + 1
print(df)
输出结果同上。
采用numpy的argsort方法的优势在于可以自定义排名规则,比如按照字典序排名等。
以上就是为Python数据框添加排名列的方法,具体采用哪种方法可以根据实际需求来选择。