python pandas 组内排序、单组排序、标号的实例


Posted in Python onApril 12, 2018

摘要:本文主要是讲解一下,如何进行排序。分为两种情况,不分组进行排序和组内进行排序。什么意思呢?具体来说,我举个栗子。

****注意****

如果只是单纯想对某一列进行排序,而不进行打序号的话直接使用.sort_values就可以了。下文是关于如何把序号也打上的

————————————————————————————

我们有一个数据集如下:

python pandas 组内排序、单组排序、标号的实例

我们下面想进行两种排序。先说第一种比较简单的也是很常用的,简单的对某一列进行排序然后添加一列序号。

例如,我们队comment_num这一列进行从大到小的排序,然后给出序号。如下图:

python pandas 组内排序、单组排序、标号的实例

可以看到,sort_num这一列就是我们队comment_num的排序。

如何实现呢?很简单,代码如下(数据集为data):

data['sort_num']=data['comment_num'].rank(ascending=0,method='dense')

这里,我们用到了两个参数,第一个很好理解 ascending,就是选择是升序还是降序排列。

另外一个参数method,这个参数很重要。我下面详细讲一下。

有时候,我们排序的时候会遇到相同大小,这个时候怎么处理呢?method其实就是让我们选择如何处理。

有以下几种处理方案:

第一种情况,如果出现相等,则序号一样,之后序号照常递增。这种情况就是上图的,我们看到comment_num等于4的有2个,序号为1。comment_num等于3的时候,序号为2,这个叫做正常按1依次递增。这和时候method='dense'

第二种情况,如果出现相等,则取最先出现的值序号为“最小”,其他相同值依次按1递增,如果把上面代码method='first',就是实现这种效果,效果如下图:

data['sort_num']=data['comment_num'].rank(ascending=0,method='first')

python pandas 组内排序、单组排序、标号的实例

comment_num中,4最大,并且第1行中的4最先出现,故序号为1。

第三种情况和第四种情况比较复杂。文字不好说明,下面直接放代码和效果。

当method='min'时

data['sort_num']=data['comment_num'].rank(ascending=0,method='min')

python pandas 组内排序、单组排序、标号的实例

当method='max'时

data['sort_num']=data['comment_num'].rank(ascending=0,method='max')

python pandas 组内排序、单组排序、标号的实例

--------------------------------分割线--------------------------------------

上面只是某一列的排序,下面是组内排序。什么是意思?同样看下面的例子

python pandas 组内排序、单组排序、标号的实例

假如,我想对cate为7的comment_num进行排序,同样也对,cate为8的comment_num进行排序。也就是说,对comment_num排序的时候,只考虑相同的cate,这个就是对组内进行排序。

实现的效果应该如下图:

python pandas 组内排序、单组排序、标号的实例

实现代码也很简单。

data['group_sort']=data['comment_num'].groupby(data['cate']).rank(ascending=0,method='dense')

以上这篇python pandas 组内排序、单组排序、标号的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中DJANGO简单测试实例
May 11 Python
django model去掉unique_together报错的解决方案
Oct 18 Python
Python 正则表达式实现计算器功能
Apr 29 Python
Python调用微信公众平台接口操作示例
Jul 08 Python
Python实现PS图像调整黑白效果示例
Jan 25 Python
python实现自主查询实时天气
Jun 22 Python
解决Python print输出不换行没空格的问题
Nov 14 Python
在pandas多重索引multiIndex中选定指定索引的行方法
Nov 16 Python
python实现AES和RSA加解密的方法
Mar 28 Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 Python
完美解决ARIMA模型中plot_acf画不出图的问题
Jun 04 Python
Pandas之缺失数据的实现
Jan 06 Python
Python实现简单http服务器
Apr 12 #Python
Python实现一个服务器监听多个客户端请求
Apr 12 #Python
python使用socket创建tcp服务器和客户端
Apr 12 #Python
Python简单实现两个任意字符串乘积的方法示例
Apr 12 #Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 #Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 #Python
pandas全表查询定位某个值所在行列的方法
Apr 12 #Python
You might like
php获取表单中多个同名input元素的值
2014/03/20 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
js 通用订单代码
2013/12/23 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
基于jquery实现的树形菜单效果代码
2015/09/06 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
js实现简易聊天对话框
2017/08/17 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
在双python下设置python3为默认的方法
2018/10/31 Python
python执行精确的小数计算方法
2019/01/21 Python
Python地图绘制实操详解
2019/03/04 Python
python开发一款翻译工具
2020/10/10 Python
优秀应届生求职信
2014/06/16 职场文书
保安2014年终工作总结
2014/12/06 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
材料员岗位职责范本
2015/04/11 职场文书
红楼梦读书笔记
2015/06/25 职场文书
2015年工会工作总结范文
2015/07/23 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis