pandas--排序和排名
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
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
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
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
| 'average' | 默认:在相等分组中,为各值分配平均排名 |
| 'min' | 使用整个分组的最小排名 |
| 'max' | 使用整个分组的最大排名 |
| 'first' | 按值在原数据中的出现顺序分配排名 |
pandas--排序和排名的更多相关文章
- Pandas基本功能之算术运算、排序和排名
算术运算和数据对齐 Series和DataFrame中行运算和列运算有种特征叫做广播 在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集.自动的数据对齐操作在不重叠的索引处引入了NA ...
- Pandas的排序和排名(Series, DataFrame) + groupby
根据条件对数据集排序(sorting)也是一种重要的内置运算.要对行或列索引进行排序(按字典顺序), 可使用sort_index 方法, 它将返回一个已排序的新对象: 而DataFrame, 则可以根 ...
- Pandas排序
Pandas有两种排序方式,它们分别是 - 按标签 按实际值 下面来看看一个输出的例子. import pandas as pd import numpy as np unsorted_df=pd.D ...
- 第七节:pandas排序
pandas具有两种排序方式:sort_index()和sort_values().
- PAT A1012 The Best Rank (25 分)——多次排序,排名
To evaluate the performance of our first year CS majored students, we consider their grades of three ...
- pandas 排序之 sort_values,reindex,reset_index, sort_index
如果想按照自己的方式排序ind = 行索引data= data[ind] ind = data.sum(axis=1).sort_values(ascending=False).index data ...
- Cognos开发自定义排序规则的报表和自定义排名报表
场景:有一个简单的销售数据分析,可以按照日期,按照商品类型来分析订单笔数和订单金额. 目的:用户可以自定义查看按照不同指标排序的数据,用户可以查看按照不同指标排名的前N名数据 一:功能及效果展示 效果 ...
- pandas 按照某一列进行排序
pandas排序的方法有很多,sort_values表示根据某一列排序 pd.sort_values("xxx",inplace=True) 表示pd按照xxx这个字段排序,inp ...
- 《利用python进行数据分析》读书笔记--第五章 pandas入门
http://www.cnblogs.com/batteryhp/p/5006274.html pandas是本书后续内容的首选库.pandas可以满足以下需求: 具备按轴自动或显式数据对齐功能的数据 ...
- 利用python进行数据分析之pandas库的应用(二)
本节介绍Series和DataFrame中的数据的基本手段 重新索引 pandas对象的一个重要方法就是reindex,作用是创建一个适应新索引的新对象 >>> from panda ...
随机推荐
- 正在从 Windows 应用商店下载... 无法从 Windows 应用商店下载。请检查网络连接。
手贱关掉了一下服务,再打开就是嘛
- 虚拟机linux系统 硬盘/root路径扩容
调整完后,重新打开虚拟机,使用fdisk -l查看,可以看到我们刚刚扩容的空间已经可以看到,但没有分区,还不能使用./dev/sda已经拥有了扩大的空间. 使用Linux的fdisk分区工具给磁盘/d ...
- Redis ASP.NET 配置链接
对于安装Redis后 很是不明白如何建立Redis 和 .net 的链接配置 于是查找了很多的资料 首先第一步:安装ASP.NET NuGet 包 (ServiceStack.Redis) 安装好后 ...
- 一篇不一样的Android屏幕适配具体做法(原创)
转载请注明出处(http://www.cnblogs.com/weizhxa/p/7568090.html ) 有不正确,还请大家留言修正! 1.何谓屏幕适配:在任何设备上看起来布局都是近似的,细分也 ...
- 【读书笔记】【数据库】SQL必知必会
第1课 了解SQL 简单介绍了sql,和dbms,无重点. 第2课 检索数据 重点:select语句,distinct,limit,注释 1. select 语句如果没有明确排序查询结果,那么返回的数 ...
- 转帖 eclipse Web项目WebContent目录修改
最近在做Web 项目时,新建了一个WEB 项目,如webdemo,eclipse默认的build路径为build,WEB-INF存放于WebContent下面,今改了一个build路径和WebCont ...
- vue 学习六 在组件上使用v-model
其实这个部分应该是属于component,为什么把这玩意单独拿出来呢,原因是它这个东西比较涉及到了vue的事件,以及v-model指令的使用,还是比较综合的.所以就拿出来啦 父组件 <templ ...
- vue 同时使用过渡和动画
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- css 一行内显示 超出自动隐藏
一般的文字截断(适用于内联与块): Example Source Code [www.mb5u.com].text-overflow {display:block;/*内联对象需加*/width:31 ...
- Android中怎么破解游戏之修改金币数
我们在玩游戏的时候总是会遇到一些东东需要进行购买的,但是我们可能又舍不得花钱,那么我们该怎么办呢?那就是用游戏外挂吧!我们这里说的是Android中的游戏,在网上搜索一下移动端游戏外挂,可能会找到一款 ...