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中super的用法实例
May 28 Python
Python实现SVN的目录周期性备份实例
Jul 17 Python
Python中Collections模块的Counter容器类使用教程
May 31 Python
python根据unicode判断语言类型实例代码
Jan 17 Python
python 创建一个空dataframe 然后添加行数据的实例
Jun 07 Python
python3 pillow模块实现简单验证码
Oct 31 Python
Python实现遗传算法(二进制编码)求函数最优值方式
Feb 11 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
Mar 08 Python
python输出数学符号实例
May 11 Python
python 在sql语句中使用%s,%d,%f说明
Jun 06 Python
python中加背景音乐如何操作
Jul 19 Python
Python通过队列来实现进程间通信的示例
Oct 14 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在线生成ico文件的代码
2007/10/09 PHP
PHP时间戳与日期之间转换的实例介绍
2013/04/19 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
php对称加密算法示例
2014/05/07 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
php中Ctype函数用法详解
2014/12/09 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
PHP生成唯一ID之SnowFlake算法
2016/12/17 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
js 小贴士一星期合集
2010/04/07 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
学习使用bootstrap基本控件(table、form、button)
2016/04/12 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
python使用turtle库绘制树
2018/06/25 Python
python 为什么说eval要慎用
2019/03/26 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
详解Python打包分发工具setuptools
2019/08/05 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
高二学生评语大全
2014/04/25 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
销售经理岗位职责范本
2015/04/02 职场文书
老公写给老婆的检讨书
2015/05/06 职场文书