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登录Gmail并发送Gmail邮件的教程
Apr 17 Python
python利用不到一百行代码实现一个小siri
Mar 02 Python
Python处理命令行参数模块optpars用法实例分析
May 31 Python
对Python 3.2 迭代器的next函数实例讲解
Oct 18 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
Python3 SSH远程连接服务器的方法示例
Dec 29 Python
python保留小数位的三种实现方法
Jan 07 Python
python基于event实现线程间通信控制
Jan 13 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
解决python DataFrame 打印结果不换行问题
Apr 09 Python
python和php哪个容易学
Jun 19 Python
django form和field具体方法和属性说明
Jul 09 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上传、管理照片示例
2006/10/09 PHP
不错的一篇面向对象的PHP开发模式(简写版)
2007/03/15 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
用js怎么把&字符换成"&amp:"
2006/10/19 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
vue使用Axios做ajax请求详解
2017/06/07 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
2018/01/25 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
python脚本实现验证码识别
2018/06/07 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
Python自动抢红包教程详解
2019/06/11 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
Python hashlib模块的使用示例
2020/10/09 Python
在网上学习全世界最好的课程:Coursera
2017/11/07 全球购物
入党自我评价优缺点
2014/01/25 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
宾馆客房管理制度
2015/08/06 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python