排序
要对行或列索引进行排序,可使用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. 线程分离pthread_detach()中的return()和pthread_exit()

    #include <stdio.h> #include <pthread.h> pthread_t tid[]; void *func_2(void *arg); void * ...

  2. 事件循环--eventloop

    一.什么是事件循环? 事件循环是 JS 实现异步的具体解决方案,同步代码直接执行,异步函数或代码块先放在异步队列中,待同步函数执行完毕,轮询执行异步队列的函数. 事件循环 二.node.js中的事件循 ...

  3. 如何取消IDEA的自动删除行尾空格?

    使用IDEA,添加注释的时候敲空格,总是会把行尾空格删除导致代码跑到注释行,很不爽~~ 取消这个不爽的功能:File--Settings--Editor--General--Other--Strip ...

  4. 2018-8-10-WPF-DrawingVisual

    title author date CreateTime categories WPF DrawingVisual lindexi 2018-08-10 19:16:53 +0800 2018-2-1 ...

  5. MS14-068利用

    漏洞原理详情后续补上:kerberos 协议实现过程中的某些 bug,致使普通域用户可以任意伪造高权限 PAC,去请求 TGS 从而导致的权限提升,漏洞现在很少遇到了. 一.利用 需要拥有一个域账号的 ...

  6. Redis ASP.NET 配置链接

    对于安装Redis后 很是不明白如何建立Redis 和 .net 的链接配置 于是查找了很多的资料 首先第一步:安装ASP.NET  NuGet 包 (ServiceStack.Redis) 安装好后 ...

  7. 【Luogu】【关卡2-13】线性数据结构(2017年10月)【还差一道题】

    任务说明:数组,链表,队列,栈,都是线性结构.巧用这些结构可以做出不少方便的事情. P1996 约瑟夫问题 n个人,排成环形,喊到m的人出列,输出出列顺序. 咳咳,这个题目不好写,尽管简单就是模拟题. ...

  8. Ubuntu 16.04 安装docker-ce,docker-compose

    Get Docker CE for Ubuntu 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc 使用 ...

  9. 【JZOJ6433】【luoguP5664】【CSP-S2019】Emiya 家今天的饭

    description analysis 首先可以知道不符合要求的食材仅有一个,于是可以容斥拿总方案数减去选不合法食材的不合法方案数 枚举选取哪一个不合法食材,设\(f[i][j]\)表示到第\(i\ ...

  10. 编辑bbs文章 获取前端标题内容 和前端内容的方法