Pandas之排序函数sort_values()的实现


Posted in Python onJuly 09, 2019

一、sort_values()函数用途

pandas中的sort_values()函数原理类似于SQL中的order by,可以将数据集依照某个字段中的数据进行排序,该函数即可根据指定列数据也可根据指定行的数据排序。

二、sort_values()函数的具体参数

用法:

DataFrame.sort_values(by=‘##',axis=0,ascending=True, inplace=False, na_position=‘last')

参数说明

参数 说明
by 指定列名(axis=0或'index')或索引值(axis=1或'columns')
axis 若axis=0或'index',则按照指定列中数据大小排序;若axis=1或'columns',则按照指定索引中数据大小排序,默认axis=0
ascending 是否按指定列的数组升序排列,默认为True,即升序排列
inplace 是否用排序后的数据集替换原来的数据,默认为False,即不替换
na_position {‘first',‘last'},设定缺失值的显示位置

三、sort_values用法举例

创建数据框

#利用字典dict创建数据框
import numpy as np
import pandas as pd
df=pd.DataFrame({'col1':['A','A','B',np.nan,'D','C'],
         'col2':[2,1,9,8,7,7],
         'col3':[0,1,9,4,2,8]
})
print(df)

>>>
 col1 col2 col3
0  A   2   0
1  A   1   1
2  B   9   9
3 NaN   8   4
4  D   7   2
5  C   7   8

依据第一列排序,并将该列空值放在首位

#依据第一列排序,并将该列空值放在首位
print(df.sort_values(by=['col1'],na_position='first'))
>>>
 col1 col2 col3
3 NaN   8   4
0  A   2   0
1  A   1   1
2  B   9   9
5  C   7   8
4  D   7   2

依据第二、三列,数值降序排序

#依据第二、三列,数值降序排序
print(df.sort_values(by=['col2','col3'],ascending=False))
>>>
 col1 col2 col3
2  B   9   9
3 NaN   8   4
5  C   7   8
4  D   7   2
0  A   2   0
1  A   1   1

根据第一列中数值排序,按降序排列,并替换原数据

#根据第一列中数值排序,按降序排列,并替换原数据
df.sort_values(by=['col1'],ascending=False,inplace=True,
           na_position='first')
print(df)
>>>
 col1 col2 col3
3 NaN   8   4
4  D   7   2
5  C   7   8
2  B   9   9
1  A   1   1
0  A   2   0

按照索引值为0的行,即第一行的值来降序排序

x = pd.DataFrame({'x1':[1,2,2,3],'x2':[4,3,2,1],'x3':[3,2,4,1]}) 
print(x)
#按照索引值为0的行,即第一行的值来降序排序
print(x.sort_values(by =0,ascending=False,axis=1))
>>>
  x1 x2 x3
0  1  4  3
1  2  3  2
2  2  2  4
3  3  1  1
  x2 x3 x1
0  4  3  1
1  3  2  2
2  2  4  2
3  1  1  3

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pyqt和pyside开发图形化界面
Jan 22 Python
Python自定义scrapy中间模块避免重复采集的方法
Apr 07 Python
Python自动化部署工具Fabric的简单上手指南
Apr 19 Python
Python Django使用forms来实现评论功能
Aug 17 Python
Python 多线程Threading初学教程
Aug 22 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
May 26 Python
Python3实现的判断环形链表算法示例
Mar 07 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
Jul 22 Python
解决Django Static内容不能加载显示的问题
Jul 28 Python
python函数不定长参数使用方法解析
Dec 14 Python
python @propert装饰器使用方法原理解析
Dec 25 Python
Anaconda和ipython环境适配的实现
Apr 22 Python
python爬虫之快速对js内容进行破解
Jul 09 #Python
python 求某条线上特定x值或y值的点坐标方法
Jul 09 #Python
python将字符串转换成json的方法小结
Jul 09 #Python
Python绘制堆叠柱状图的实例
Jul 09 #Python
python3 线性回归验证方法
Jul 09 #Python
python time.sleep()是睡眠线程还是进程
Jul 09 #Python
python logging模块的使用总结
Jul 09 #Python
You might like
php5 pdo新改动加载注意事项
2008/09/11 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
2019/10/16 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
TinyMCE 新增本地图片上传功能
2010/11/05 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
JS数组去重与取重的示例代码
2014/01/24 Javascript
浅析node.js中close事件
2014/11/26 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
2019/06/10 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
python程序 创建多线程过程详解
2019/09/23 Python
Python hashlib模块的使用示例
2020/10/09 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
人事主管岗位职责
2014/01/30 职场文书
安全标准化汇报材料
2014/02/03 职场文书
《伯牙绝弦》教学反思
2014/03/02 职场文书
人力资源总监工作说明
2014/03/03 职场文书
意向协议书范本
2014/04/23 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
工作年限证明模板
2015/06/15 职场文书
小学英语教学随笔
2015/08/14 职场文书
一文带你探究MySQL中的NULL
2021/11/11 MySQL
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技