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 相关文章推荐
简单的通用表达式求10乘阶示例
Mar 03 Python
Python中正则表达式的详细教程
Apr 30 Python
将Python字符串生成PDF的实例代码详解
May 17 Python
通过pycharm使用git的步骤(图文详解)
Jun 13 Python
Python 获取ftp服务器文件时间的方法
Jul 02 Python
Python面向对象编程基础实例分析
Jan 17 Python
python 实现在无序数组中找到中位数方法
Mar 03 Python
jupyter notebook tensorflow打印device信息实例
Apr 20 Python
python使用openpyxl操作excel的方法步骤
May 28 Python
Python pygame实现中国象棋单机版源码
Jun 20 Python
python字典的元素访问实例详解
Jul 21 Python
OpenCV项目实践之停车场车位实时检测
Apr 11 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使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
IE 当eval遇上function的处理
2011/08/09 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
详解javascript遍历方式
2015/11/11 Javascript
深入理解js中this的用法
2016/05/28 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
详解html-webpack-plugin用法全解
2018/01/22 Javascript
angularJS开发注意事项
2018/05/26 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
python中uuid模块实例浅析
2020/12/29 Python
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
三星印度官网:Samsung印度
2019/08/03 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
个人务虚会发言材料
2014/10/20 职场文书
四年级数学上册教学计划
2015/01/20 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
护理自荐信
2019/05/14 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL