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脚本实现下载合并SAE日志
Feb 10 Python
浅谈Python生成器generator之next和send的运行流程(详解)
May 08 Python
Django实现支付宝付款和微信支付的示例代码
Jul 25 Python
python将list转为matrix的方法
Dec 12 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
Aug 12 Python
在Django下创建项目以及设置settings.py教程
Dec 03 Python
如何基于Python实现自动扫雷
Jan 06 Python
wxpython自定义下拉列表框过程图解
Feb 14 Python
python调用百度API实现人脸识别
Nov 17 Python
python BeautifulSoup库的安装与使用
Dec 17 Python
如何用python清洗文件中的数据
Jun 18 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之第九天
2006/10/09 PHP
打造计数器DIY三步曲(下)
2006/10/09 PHP
Yii框架安装简明教程
2020/05/15 PHP
Maps Javascript
2007/01/22 Javascript
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
js阻止事件追加的具体实现
2014/10/15 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
2016/08/10 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
Python自动抢红包教程详解
2019/06/11 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
计算机专业自我鉴定
2013/10/15 职场文书
运动会广播稿100字
2014/01/11 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
政协委员个人总结
2015/03/03 职场文书
房产电话营销开场白
2015/05/29 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL