Python Pandas Dataframe.rank()
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
Pandas Dataframe.rank()方法返回所传递的系列中每个索引的等级。排名是在排序后的位置基础上返回的。
语法:
DataFrame.rank(axis=0, method=’average’, numeric_only=None, na_option=’keep’, ascending=True, pct=False)
参数:
axis: 0或’index’代表行,1或’column’代表列。
method: 接受一个字符串输入(‘average’, ‘min’, ‘max’, ‘first’, ‘dense’),告诉pandas如何处理相同的值。默认值是平均数,这意味着将等级的平均值分配给相似的值。
numeric_only:取一个布尔值,只有当它为False时,等级函数才对非数字值起作用。
na_option:接收3个字符串输入(‘keep’, ‘top’, ‘bottom’)来设置空值的位置,如果在传递的系列中有空值的话。
ascending:布尔值,如果为真,则按升序排列。
pct:布尔值,如果为真,则按百分比排名。
返回类型。系列,包括调用者系列的每个索引的等级。
例子#1:有唯一值的排行栏
在下面的例子中,创建了一个新的排名列,对每个球员的名字进行排名。Name列中的所有值都是唯一的,因此没有必要描述一个方法。
# importing pandas package
import pandas as pd
# making data frame from csv file
data = pd.read_csv("nba.csv")
# creating a rank column and passing the 返回值ed rank series
data["Rank"] = data["Name"].rank()
# display
data
# sorting w.r.t name column
data.sort_values("Name", inplace = True)
# display after sorting w.r.t Name column
data
输出:
如图所示,每一个名字的等级都被创建了一个列的等级。在sort_value函数对数据框架进行排序后,可以看到等级也被排序了,因为这些只是名字的排序。
分拣前-
分类后 –
例子2:用一些类似的值对列进行排序
在下面的例子中,数据框架首先按照球队名称进行排序,首先使用默认方法(即平均法),因此同一球队球员的排名是平均的。之后,还使用了min方法来查看输出结果。
# importing pandas package
import pandas as pd
# making data frame from csv file
data = pd.read_csv("nba.csv")
# sorting w.r.t team name
data.sort_values("Team", inplace = True)
# creating a rank column and passing the 返回值ed rank series
# change method to 'min' to rank by minimum
data["Rank"] = data["Team"].rank(method ='average')
# display
data
输出:
**With method=’average’ **
With method=’min’