Pandas DataFrame rank()函数返回系列中每个索引的等级,该索引被传递。 排名是根据系列的排序后的位置来返回的。
Pandas DataFrame rank
Pandas DataFrame rank()是一个库方法,用于返回所传递的系列的每个索引的等级。排名是根据排序后的位置返回的。
rank()方法最多接受六个参数,并返回系列中每个索引的等级。
语法
DataFrame.rank(axis=0, method=’average’, numeric_only=None, na_option=’keep’, ascending = True, pct = False)
参数
它有以下参数,这些参数将被简要地定义:
- axis(轴):它采用整数值(0或1)。0(index)是指行,1(columns)是指列。
- method:它接受字符串输入。它可以有'平均'、'最小'、'最大'、'第一'、'密集'的值。默认情况下,它被设置为'平均'。它意味着给类似的值分配一个平均的等级。
- numeric_only:它需要一个布尔值,完全是可选的。对于DataFrame对象,如果设置为True,它只对数字列进行排名。
- na_option:它也接受字符串输入。它可以有'保持'、'顶部'、'底部'。这样做是为了设置所传递的系列中的Null值的位置(如果有的话)。
- ascending(升序):它接受布尔值,如果为真,则以升序排列。
- pct:它接收一个布尔值,如果为真,则按百分比排列。
返回值
rank函数返回在调用者系列中存在的每个索引的等级的系列。
Pandas DataFrame rank()的程序示例
写一个程序来展示rank()方法的工作
import pandas as pd
data_dict = {"Name": ["Rohit", "Karan", "Shivam", "Anubhav"],
"Age": [21, 23, 31, 23], "City": ["Patna", "Kolkata", "Mumbai", "Kolkata"]} # Creating a DataFrame with data of few people
data = pd.DataFrame(data_dict)
# Adding a rank column that will be evaluated according to the names.
data["Rank"] = data["Name"].rank()
print(data, "\n") # Printing the datan
# Sorting the data w.r.t to column == Name
data.sort_values("Name", inplace=True)
print("\n Data after sorting the DataFrame according to the rank")
print(data, "\n")
输出
Name Age City Rank
0 Rohit 21 Patna 3.0
1 Karan 23 Kolkata 2.0
2 Shivam 31 Mumbai 4.0
3 Anubhav 23 Kolkata 1.0
Data after sorting the DataFrame according to the rank
Name Age City Rank
3 Anubhav 23 Kolkata 1.0
1 Karan 23 Kolkata 2.0
0 Rohit 21 Patna 3.0
2 Shivam 31 Mumbai 4.0
在这里我们可以看到,我们已经从一个 包含学生数据 的 字典中创建了一个DataFrame 。我们添加了一个名为rank的列,之后,我们 根据名字对数据进行排序,并将其打印在DataFrame中。
在Pandas中对具有相似值的列进行排序
在下面的例子中,DataFrame首先按照列名进行排序
请看下面的代码:
import pandas as pd
data_dict = {"Name": ["Rohit", "Karan", "Shivam", "Karan"],
"Age": [21, 23, 31, 23], "City": ["Patna", "Kolkata", "Mumbai", "Kolkata"]} # Creating a DataFrame with data of few people
data = pd.DataFrame(data_dict)
# Adding a rank column that will be evaluated according to the names.
data["Rank"] = data["Name"].rank()
print(data, "\n") # Printing the data
# Sorting the data w.r.t to column == Name
data.sort_values("Name", inplace=True)
print("\n Data after sorting the DataFrame according to the rank")
print(data, "\n")
输出
Name Age City Rank
0 Rohit 21 Patna 3.0
1 Karan 23 Kolkata 1.5
2 Shivam 31 Mumbai 4.0
3 Karan 23 Kolkata 1.5
Data after sorting the DataFrame according to the rank
Name Age City Rank
1 Karan 23 Kolkata 1.5
3 Karan 23 Kolkata 1.5
0 Rohit 21 Patna 3.0
2 Shivam 31 Mumbai 4.0
在这里我们可以看到,我们从一个字典中创建了一个DataFrame,它 由具有相同名字的学生数据组成(在这个DataFrame中是Karan)。
我们添加了一个名为rank的列,根据 名字对数据进行排序 ,并将其打印在DataFrame中。
这就是Pandas DataFrame rank()方法的内容。