python pandas排名
时间: 2023-05-15 20:02:34 浏览: 127
Python系列—-pandas的排序、排名
5星 · 资源好评率100%
Python pandas是一种优秀的数据处理和分析的开发库,可以实现各种数据排名操作,排名通常指定定量变量每组的排名。下面就介绍一下python pandas排名的相关知识。
在Python Pandas中,我们可以使用rank()函数来对数据进行排名操作。rank()函数有以下几个参数:
- axis:指定对哪个轴进行排名,0表示行,1表示列,默认为0。
- method:指定排名方法,average、min、max、first、dense,其中average为默认值。average表示采用平均排名,如果有两个数据相等,则排名取平均值。min表示取最小排名,max表示取最大排名,first表示按照出现顺序排名,dense表示一组中有多个数据和它排名相等时,排名都会取最小值。
- ascending:指定排名的升序或降序(默认为True,即升序)。
一个常见的例子是对DataFrame中的某一列数据进行排名操作:
```
import pandas as pd
data = {
'name':['A','B','C','D','E'],
'score':[60,70,80,90,80]
}
df = pd.DataFrame(data)
df['rank'] = df['score'].rank(method='min',ascending=False)
print(df)
```
输出结果为:
```
name score rank
0 A 60 5.0
1 B 70 4.0
2 C 80 2.5
3 D 90 1.0
4 E 80 2.5
```
这里我们对score列进行了排名操作,并将排名结果存入新的一列rank中。可以看到,score为60的数据排名最后,score为90的数据排名第一,score为80的数据排名第2.5名和第2.5名。
除了对DataFrame中的某列进行排名,还可以使用groupby函数对数据进行分组操作,然后再对每组数据进行排名:
```
import pandas as pd
data = {
'group':['A','A','B','B','C'],
'score':[60,70,80,90,80]
}
df = pd.DataFrame(data)
df['rank'] = df.groupby('group')['score'].rank(method='dense',ascending=False)
print(df)
```
输出结果为:
```
group score rank
0 A 60 2.0
1 A 70 1.0
2 B 80 2.0
3 B 90 1.0
4 C 80 1.0
```
这里我们根据group列对数据进行分组,然后分别对每组的score列进行排名操作,并将排名结果存入新的一列rank中。可以看到,group为A的数据中,score为60的数据排名第二,score为70的数据排名第一。group为B的数据中,score为80的数据排名第二,score为90的数据排名第一。group为C的数据中,score为80的数据排名第一。
阅读全文