排序
要对行或列索引进行排序,可使用sort_index方法,它将返回一个已排序的新对象:
Series
1、对Series索引排序

 obj=Series(range(4),index=['d','a','b','c'])

 obj.sort_index()
Out[18]:
a 1
b 2
c 3
d 0
dtype: int64

2、按值对Series进行排序

 obj=Series([4,7,-3,2])

 obj
Out[10]:
0 4
1 7
2 -3
3 2
dtype: int64 obj.sort_values()
Out[11]:
2 -3
3 2
0 4
1 7
dtype: int64

在排序时,任何缺失值默认都会被放到Series的末尾:

 obj=Series([4,np.nan,7,np.nan,-3,2])

 obj
Out[13]:
0 4.0
1 NaN
2 7.0
3 NaN
4 -3.0
5 2.0
dtype: float64 obj.sort_values()
Out[14]:
4 -3.0
5 2.0
0 4.0
2 7.0
1 NaN
3 NaN
dtype: float64
DataFrame
1、对于DataFrame,可以根据任意一个轴上的索引进行排序:
 frame=DataFrame(np.arange(8).reshape((2,4)),index=['three','one'],
columns=['d','a','b','c']) frame
Out[20]:
d a b c
three 0 1 2 3
one 4 5 6 7 frame.sort_index()
Out[21]:
d a b c
one 4 5 6 7
three 0 1 2 3 #指定轴
frame.sort_index(axis=1)
Out[22]:
a b c d
three 1 2 3 0
one 5 6 7 4

数据默认是升序排序,但也可以降序排序

 frame.sort_index(axis=1,ascending=False)
Out[23]:
d c b a
three 0 3 2 1
one 4 7 6 5

2、在DataFrame上,根据一个或多个列中的值来进行排序

 frame=DataFrame({'b':[4,7,-3,2],'a':[0,1,0,1]})

 frame
Out[16]:
a b
0 0 4
1 1 7
2 0 -3
3 1 2 frame.sort_values(by='b') Out[17]:
a b
2 0 -3
3 1 2
0 0 4
1 1 7 #根据多个列进行排序,传入名称的列表即可
frame.sort_values(by=['a','b']) Out[18]:
a b
2 0 -3
0 0 4
3 1 2
1 1 7
排名
通过Series和DataFrame的rank方法。
默认情况下,rank是通过“为各组分配一个平均排名”的方式破坏平级关系的。
Series
 obj=Series([7,-5,7,4,2,0,4])

 obj.rank()
Out[20]:
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')
Out[21]:
0 6.0
1 1.0
2 7.0
3 4.0
4 3.0
5 2.0
6 5.0
dtype: float64

可以进行降序排名:

 #max使用整个分组的最大排名
obj.rank(ascending=False,method='max')
Out[22]:
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=DataFrame({'b':[4.3,7,-3,2],'a':[0,1,0,1],
'c':[-2,5,-8,-2.5]}) frame
Out[25]:
a b c
0 0 4.3 -2.0
1 1 7.0 5.0
2 0 -3.0 -8.0
3 1 2.0 -2.5 #指定轴
frame.rank(axis=1)
Out[26]:
a b c
0 2.0 3.0 1.0
1 1.0 3.0 2.0
2 3.0 2.0 1.0
3 2.0 3.0 1.0
排名时用于破坏平级关系的method选项
'average' 默认:在相等分组中,为各值分配平均排名
'min' 使用整个分组的最小排名
'max' 使用整个分组的最大排名
'first' 按值在原数据中的出现顺序分配排名

pandas--排序和排名的更多相关文章

  1. Pandas基本功能之算术运算、排序和排名

    算术运算和数据对齐 Series和DataFrame中行运算和列运算有种特征叫做广播 在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集.自动的数据对齐操作在不重叠的索引处引入了NA ...

  2. Pandas的排序和排名(Series, DataFrame) + groupby

    根据条件对数据集排序(sorting)也是一种重要的内置运算.要对行或列索引进行排序(按字典顺序), 可使用sort_index 方法, 它将返回一个已排序的新对象: 而DataFrame, 则可以根 ...

  3. Pandas排序

    Pandas有两种排序方式,它们分别是 - 按标签 按实际值 下面来看看一个输出的例子. import pandas as pd import numpy as np unsorted_df=pd.D ...

  4. 第七节:pandas排序

    pandas具有两种排序方式:sort_index()和sort_values().

  5. PAT A1012 The Best Rank (25 分)——多次排序,排名

    To evaluate the performance of our first year CS majored students, we consider their grades of three ...

  6. pandas 排序之 sort_values,reindex,reset_index, sort_index

    如果想按照自己的方式排序ind = 行索引data= data[ind] ind = data.sum(axis=1).sort_values(ascending=False).index data ...

  7. Cognos开发自定义排序规则的报表和自定义排名报表

    场景:有一个简单的销售数据分析,可以按照日期,按照商品类型来分析订单笔数和订单金额. 目的:用户可以自定义查看按照不同指标排序的数据,用户可以查看按照不同指标排名的前N名数据 一:功能及效果展示 效果 ...

  8. pandas 按照某一列进行排序

    pandas排序的方法有很多,sort_values表示根据某一列排序 pd.sort_values("xxx",inplace=True) 表示pd按照xxx这个字段排序,inp ...

  9. 《利用python进行数据分析》读书笔记--第五章 pandas入门

    http://www.cnblogs.com/batteryhp/p/5006274.html pandas是本书后续内容的首选库.pandas可以满足以下需求: 具备按轴自动或显式数据对齐功能的数据 ...

  10. 利用python进行数据分析之pandas库的应用(二)

    本节介绍Series和DataFrame中的数据的基本手段 重新索引 pandas对象的一个重要方法就是reindex,作用是创建一个适应新索引的新对象 >>> from panda ...

随机推荐

  1. 暴力穷举zip、rar压缩文件的密码

    生成密码的方式类似与时钟,末尾遍历完了第k位所有的字符,就让第k位的前一位到下一位字符,第k位回到第0个字符. 对python还不太熟悉,效率比较低,但是能破解简单的密码. import zipfil ...

  2. MySQL锁机制浅析

    MySQL使用了3种锁机制 行级锁,开销大,加锁慢,会出现死锁,发生锁冲突的概率最高,并发度也最高 表级锁,开销小,加锁快,不会出现死锁,发生锁冲突的概率最低,并发度最低 页级锁,开销和加锁时间界于表 ...

  3. redis的密码设置

    若连接redis时报错:Redis (error) NOAUTH Authentication required.,通常是由于redis设了密码但连接时却未提供密码引起的. 设置密码: 编辑redis ...

  4. Github Statistics 一个基于 React 的 GitHub 数据统计工具

    V 站曾经有个热帖说为何我的开源项目只有 Fork 没有 Star,楼下有个热评说开源项目关注的不应该是 Commit 数据吗?先不论 Star.Fork 和 Commit,issue .pr 也应是 ...

  5. spring security学习总结

    这几天一直在学习spring security的相关知识.逛各大论坛,看相关api与教学视频,获益良多! 简介 Spring Security是为基于Spring的企业应用系统提供声明式的安全访问控制 ...

  6. python 文件复制压缩

    import os import time #这里是需要文件所在的位置 source=['"C:\\My Documents"',"C:\\Code"] #转换 ...

  7. Eclipse快速生成一个JavaBean类的方法

    原文: https://jingyan.baidu.com/article/948f5924156866d80ff5f921.html Eclipse快速生成一个JavaBean类的方法 听语音 | ...

  8. Vue中的作用域插槽

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 设置overflow:auto无效的解决办法

    做项目中经常要用到滚动条,有时候给div设置overflow无效. 遇到这样的问题,只需要在 F12 Elements面板检查一下要设置overflow的元素的宽高是否大于父级元素宽高. (overf ...

  10. CleanMyMac x如何关闭自动更新,CleanMyMac关闭自动更新的方法

    在众多Mac清理软件中,CleanMyMac x应该是大多数Mac用户的选择,因为它不仅可以帮助我们清理系统垃圾,还可以帮助我们彻底卸载Mac上不需要的应用程序.今天要给大家介绍的是CleanMyMa ...