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常用正则表达式符号浅析
Aug 13 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
在Python中使用列表生成式的教程
Apr 27 Python
在Django的通用视图中处理Context的方法
Jul 21 Python
Python制作简单的网页爬虫
Nov 22 Python
Python实现的异步代理爬虫及代理池
Mar 17 Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 Python
python寻找list中最大值、最小值并返回其所在位置的方法
Jun 27 Python
python 多线程将大文件分开下载后在合并的实例
Nov 09 Python
Pyqt5实现英文学习词典
Jun 24 Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 Python
Python中glob库实现文件名的匹配
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使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
2020/11/12 Javascript
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
Python文件及目录操作实例详解
2015/06/04 Python
Python3.2模拟实现webqq登录
2016/02/15 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
python 元组和列表的区别
2020/12/30 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
C# Debug和Testing相关面试题
2015/10/25 面试题
2015年汽车销售经理工作总结
2015/04/27 职场文书
同事打架检讨书
2015/05/06 职场文书
Python基础之Socket通信原理
2021/04/22 Python
python常见的占位符总结及用法
2021/07/02 Python
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript