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获取从命令行输入数字的方法
Apr 29 Python
Python实现的彩票机选器实例
Jun 17 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
Jul 11 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
对tensorflow 的模型保存和调用实例讲解
Jul 28 Python
对django中foreignkey的简单使用详解
Jul 28 Python
python打开使用的方法
Sep 30 Python
python 实现目录复制的三种小结
Dec 04 Python
Python通过VGG16模型实现图像风格转换操作详解
Jan 16 Python
TensorFlow加载模型时出错的解决方式
Feb 06 Python
通过案例解析python鸭子类型相关原理
Oct 10 Python
python用海龟绘图写贪吃蛇游戏
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
日本十大惊悚动漫
2020/03/04 日漫
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
PHP APC配置文件2套和参数详解
2014/06/11 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
鼠标经过的文本框textbox变色
2009/05/21 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
python取数作为临时极大值(极小值)的方法
2018/10/15 Python
python中的数据结构比较
2019/05/13 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
如何理解委托
2012/01/06 面试题
小学生家长评语集锦
2014/01/30 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
合作意向书模板
2014/03/31 职场文书
活动倡议书范文
2014/05/13 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server