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 相关文章推荐
详解Django中的过滤器
Jul 16 Python
Python2.x利用commands模块执行Linux shell命令
Mar 11 Python
Python使用pylab库实现绘制直方图功能示例
Jun 01 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
python 猴子补丁(monkey patch)
Jun 26 Python
python读写csv文件方法详细总结
Jul 05 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
解决Tensorboard 不显示计算图graph的问题
Feb 15 Python
python实现电子词典
Mar 03 Python
Python Charles抓包配置实现流程图解
Sep 29 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 Python
总结Python使用过程中的bug
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五种设计模式小结
2011/03/23 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
p5.js码绘“跳动的小正方形”的实现代码
2019/10/22 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
python不带重复的全排列代码
2013/08/13 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
python中aioysql(异步操作MySQL)的方法
2019/04/11 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
Discard Protocol抛弃协议的作用是什么
2015/10/10 面试题
教师求职推荐信范文
2013/11/20 职场文书
应用数学自荐书范文
2013/11/24 职场文书
三方股份合作协议书
2014/10/13 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
学校党支部承诺书
2015/04/30 职场文书
施工安全保证书
2015/05/09 职场文书
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
nginx配置虚拟主机的详细步骤
2021/07/21 Servers