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 相关文章推荐
Windows系统下使用flup搭建Nginx和Python环境的方法
Dec 25 Python
使用PyV8在Python爬虫中执行js代码
Feb 16 Python
使用python为mysql实现restful接口
Jan 05 Python
Python元字符的用法实例解析
Jan 17 Python
python3+PyQt5 数据库编程--增删改实例
Jun 17 Python
python+opencv实现摄像头调用的方法
Jun 22 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
python实现井字棋小游戏
Mar 04 Python
python 如何利用argparse解析命令行参数
Sep 11 Python
python如何实现word批量转HTML
Sep 30 Python
Python根据URL地址下载文件并保存至对应目录的实现
Nov 15 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反向代理类代码
2014/08/15 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
大家未必知道的Js技巧收藏
2008/04/07 Javascript
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
js传参数受特殊字符影响错误的解决方法
2013/10/21 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
vuex提交state&&实时监听state数据的改变方法
2018/09/16 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
用python 制作图片转pdf工具
2015/01/30 Python
Python中正则表达式的详细教程
2015/04/30 Python
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
Linux系统(CentOS)下python2.7.10安装
2018/09/26 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
python和js交互调用的方法
2020/06/23 Python
奥地利网上书店:Weltbild
2017/07/14 全球购物
房屋租赁意向书
2014/04/01 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
理财计划书
2014/08/14 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
详解JAVA中的OPTIONAL
2021/06/14 Java/Android