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实现监控程序执行时间并将其写入日志的方法
Jun 30 Python
Python二分查找详解
Sep 13 Python
Python制作钉钉加密/解密工具
Dec 07 Python
Python用户推荐系统曼哈顿算法实现完整代码
Dec 01 Python
Python批量提取PDF文件中文本的脚本
Mar 14 Python
Python使用googletrans报错的解决方法
Sep 25 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 Python
对PyQt5的输入对话框使用(QInputDialog)详解
Jun 25 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 Python
Python实现UDP程序通信过程图解
May 15 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 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
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
配置Nginx+PHP的正确思路与过程
2016/05/10 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
js 日期转换成中文格式的函数
2009/07/07 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
日本最大的旅游网站:Rakuten Travel(乐天旅游)
2018/08/02 全球购物
免税水晶:Duty Free Crystal
2019/05/13 全球购物
this关键字的作用
2016/01/30 面试题
会计大学生职业生涯规划书范文
2014/01/13 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
经典洗发水广告词
2014/03/13 职场文书
社区务虚会发言材料
2014/10/20 职场文书
2015年推普周活动方案
2015/05/06 职场文书
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL
MySQL常用慢查询分析工具详解
2022/08/14 MySQL