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学习资料
Feb 08 Python
python益智游戏计算汉诺塔问题示例
Mar 05 Python
Python实现句子翻译功能
Nov 14 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
django 连接数据库 sqlite的例子
Aug 14 Python
python 基于dlib库的人脸检测的实现
Nov 08 Python
python传到前端的数据,双引号被转义的问题
Apr 03 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
Python3中最常用的5种线程锁实例总结
Jul 07 Python
Python实现老照片修复之上色小技巧
Oct 16 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
THINKPHP内容分页代码分享
2015/01/14 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
javascript 数组排序函数
2009/08/20 Javascript
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
javascript字符串拼接的效率问题
2010/12/25 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
JS中的phototype详解
2017/02/04 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
babel之配置文件.babelrc入门详解
2018/02/22 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
详解Python中的Descriptor描述符类
2016/06/14 Python
详解python发送各类邮件的主要方法
2016/12/22 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
鱼油专家:Omegavia
2016/10/10 全球购物
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
写出一个方法实现冒泡排序
2016/07/08 面试题
优秀信贷员先进事迹
2014/01/31 职场文书
颁奖晚会主持词
2014/03/25 职场文书
区域销售经理岗位职责
2015/04/02 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python