【Python笔记】pandas排序和排名

文章目录


排序

对行或列索引进行排序(按字典序),可使用sort_index方法,将返回一个已排序的新对象。

Series

obj=pd.Series(range(4),index=list('dabc'))
# d    0
# a    1
# b    2
# c    3
# dtype: int64

obj.sort_index()
# a    1
# b    2
# c    3
# d    0
# dtype: int64

DataFrame

frame=pd.DataFrame(np.arange(8).reshape(2,4),
                  index=['three','one'],
                  columns=list('dabc'))
d a b c
three 0 1 2 3
one 4 5 6 7
frame.sort_index()
d a b c
one 4 5 6 7
three 0 1 2 3
frame.sort_index(axis=1)
a b c d
three 1 2 3 0
one 5 6 7 4
frame.sort_index(axis=1,ascending=False)
d c b a
three 0 3 2 1
one 4 7 6 5

排名

【Python笔记】pandas排序和排名

Series

obj=pd.Series([7,-5,7,4,2,0,4])

# 默认给出平均排名
obj.rank()
# 0    6.5
# 1    1.0
# 2    6.5
# 3    4.5
# 4    3.0
# 5    2.0
# 6    4.5
# dtype: float64

# 根据出现顺序给出排名
obj.rank(method='first')
# 0    6.0
# 1    1.0
# 2    7.0
# 3    4.0
# 4    3.0
# 5    2.0
# 6    5.0
# dtype: float64

# 使用整个分组的最大排名,降序
obj.rank(ascending=False,method='max')
# 0    2.0
# 1    7.0
# 2    2.0
# 3    4.0
# 4    5.0
# 5    6.0
# 6    4.0
# dtype: float64

DataFrame

frame=pd.DataFrame({'b':[4.3,7,-3,2],'a':[0,1,0,1],'c':[-2,5,8,-2.5]})
b a c
0 4.3 0 -2.0
1 7.0 1 5.0
2 -3.0 0 8.0
3 2.0 1 -2.5
frame.rank(axis=1) # 横轴排序
b a c
0 3.0 2.0 1.0
1 3.0 1.0 2.0
2 1.0 2.0 3.0
3 3.0 2.0 1.0
上一篇:前端开发没拿到接口该如何模拟数据呢?


下一篇:前端:WebP自适应实践