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 encode和decode的妙用
Sep 02 Python
Python 常用 PEP8 编码规范详解
Jan 22 Python
解决Spyder中图片显示太小的问题
Apr 27 Python
python爬取哈尔滨天气信息
Jul 14 Python
python tornado修改log输出方式
Nov 18 Python
python实现小程序推送页面收录脚本
Apr 20 Python
Python如何自动获取目标网站最新通知
Jun 18 Python
使用OpenCV实现道路车辆计数的使用方法
Jul 15 Python
Python列表推导式实现代码实例
Sep 09 Python
Python hashlib模块的使用示例
Oct 09 Python
cookies应对python反爬虫知识点详解
Nov 25 Python
python如何进行基准测试
Apr 26 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
解析yii数据库的增删查改
2013/06/20 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
AngularJS控制器详解及示例代码
2016/08/16 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
详解组件库的webpack构建速度优化
2018/06/18 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
Python计算回文数的方法
2015/03/11 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
详解Python locals()的陷阱
2019/03/26 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
教育专业自荐书范文
2013/12/17 职场文书
英语专业学生的自我评价
2013/12/30 职场文书
咖啡馆创业计划书
2014/01/26 职场文书
如何写好自荐信
2014/04/07 职场文书
婚内房产协议书范本
2014/10/02 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
护理自荐信
2019/05/14 职场文书
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技