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 相关文章推荐
由Python运算π的值深入Python中科学计算的实现
Apr 17 Python
Python实现二分查找与bisect模块详解
Jan 13 Python
Python简单网络编程示例【客户端与服务端】
May 26 Python
Python中函数参数调用方式分析
Aug 09 Python
Python简单读写Xls格式文档的方法示例
Aug 17 Python
Python中*args和**kwargs的区别详解
Sep 17 Python
用python实现一个简单计算器(完整DEMO)
Oct 14 Python
用python获取txt文件中关键字的数量
Dec 24 Python
python实现图片九宫格分割的示例
Apr 25 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 Python
解决Tkinter中button按钮未按却主动执行command函数的问题
May 23 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
Jun 11 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
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
PHP CURL模拟GET及POST函数代码
2010/04/25 PHP
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
简单实现JavaScript弹幕效果
2020/08/27 Javascript
webpack多页面开发实践
2017/12/18 Javascript
Node.js爬取豆瓣数据实例分析
2018/03/05 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
2019/02/26 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
Python编程实现控制cmd命令行显示颜色的方法示例
2017/08/14 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
2014年爱国卫生工作总结
2014/11/22 职场文书
新教师个人工作总结
2015/02/06 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python