Python|熊猫 Dataframe.rank()
Python是一种用于进行数据分析的出色语言,主要是因为以数据为中心的Python包的奇妙生态系统。 Pandas就是其中之一,它使导入和分析数据变得更加容易。
Pandas Dataframe.rank()
方法返回传递的系列的每个相应索引的排名。排序后根据位置返回排名。
Syntax:
DataFrame.rank(axis=0, method=’average’, numeric_only=None, na_option=’keep’, ascending=True, pct=False)
Parameters:
axis: 0 or ‘index’ for rows and 1 or ‘columns’ for Column.
method: Takes a string input(‘average’, ‘min’, ‘max’, ‘first’, ‘dense’) which tells pandas what to do with same values. Default is average which means assign average of ranks to the similar values.
numeric_only: Takes a boolean value and the rank function works on non-numeric value only if it’s False.
na_option: Takes 3 string input(‘keep’, ‘top’, ‘bottom’) to set position of Null values if any in the passed Series.
ascending: Boolean value which ranks in ascending order if True.
pct: Boolean value which ranks percentage wise if True.
Return type:
Series with Rank of every index of caller series.
有关代码中使用的 CSV 文件的链接,请单击此处。
示例 #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 returned 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 returned rank series
# change method to 'min' to rank by minimum
data["Rank"] = data["Team"].rank(method ='average')
# display
data
输出:
使用方法='平均'
使用方法='min'