Pandas 支持三种排序方式,按索引标签排序,按列里的值排序,按两种方式混合排序。
按值排序:sort_values()
- Series.sort_values() 方法用于按值对 Series 排序。
- DataFrame.sort_values() 方法用于按行列的值对 DataFrame 排序。
df 相关参数:
- by :行名/列名 多字段排序时 by =['字段一', '字段二'])
- axis :默认按列排序。如果axis=0,那么by="列名"; 如果axis=1,那么by="行名";
- ascending: True/False,默认True。多字段排序时可以是[True,False],即第一字段升序,第二个降序
- inplace:True/False。 是否在原有数据上进行修改 。
- 当 inplace = False 时,返回为修改过的数据,原数据不变。
- 当 inplace = True 时,返回值为 None,直接在原数据上进行操作。
- kind: 排序方法
- na_position : {'first', 'last'}, default 'last',默认缺失值排在最后面
相关示例
参数: inplace
df = pd.DataFrame(np.arange(8).reshape(4, 2))
print(df)
print("*"*20)
df.sort_values(by=1, ascending=False, inplace=False)
print(df)
print("*"*20)
df.sort_values(by=1, ascending=False, inplace=True)
print(df)
输出:
0 1
0 0 1
1 2 3
2 4 5
3 6 7
********************
0 1
0 0 1
1 2 3
2 4 5
3 6 7
********************
0 1
3 6 7
2 4 5
1 2 3
0 0 1
参数:axis、by、ascending
df = pd.DataFrame(np.arange(8).reshape(4, 2))
print(df)
print("*"*20)
df.sort_values(by=1, ascending=False, inplace=True)
print(df)
print("*"*20)
df.sort_values(by=2, axis=1, ascending=False, inplace=True)
print(df)
输出:
0 1
0 0 1
1 2 3
2 4 5
3 6 7
********************
0 1
3 6 7
2 4 5
1 2 3
0 0 1
********************
1 0
3 7 6
2 5 4
1 3 2
0 1 0
按索引排序:sort_index()
Series.sort_index()与 DataFrame.sort_index() 方法用于按索引层级对 Pandas 对象排序。
相关参数
- axis:
- level:默认None,
- ascending:默认True
- inplace:默认False
- kind:
- na_position:
- by:
df = pd.DataFrame(np.arange(6).reshape(3, 2))
print(df)
print("*"*20)
df.sort_index(ascending=False, axis=1, inplace=True)
print(df)
df.sort_index(ascending=False, axis=0, inplace=True)
print(df)
0 1
0 0 1
1 2 3
2 4 5
********************
1 0
0 1 0
1 3 2
2 5 4
1 0
2 5 4
1 3 2
0 1 0
nan值和多列排序
df = pd.DataFrame(np.array([[1, 4, 2, 3, ], [3, 2, np.nan, 6], [0, 2, 2, 4]]))
print(df)
df.sort_values(by=[1, 3], ascending=[False, True], inplace=True,)
print(df)
df.sort_values(by=2, na_position='first', inplace=True,)
print(df)
输出
0 1 2 3
0 1.0 4.0 2.0 3.0
1 3.0 2.0 NaN 6.0
2 0.0 2.0 2.0 4.0
0 1 2 3
0 1.0 4.0 2.0 3.0
2 0.0 2.0 2.0 4.0
1 3.0 2.0 NaN 6.0
0 1 2 3
1 3.0 2.0 NaN 6.0
0 1.0 4.0 2.0 3.0
2 0.0 2.0 2.0 4.0
Original: https://blog.csdn.net/qq_40926887/article/details/124225665
Author: 捌椒
Title: 数据分析之pandas数据排列【sort_values()、sort_index()】
相关文章

【论文阅读】Learning with Hypergraphs: Clustering, Classification, and Embedding
目录 Abstract Introduction Preliminaries Normalized hypergraph cut Random walk explanation Spectarl hy...

Github代码复现——SimCLR跑自己的数据集(TensorFlow2)
Github代码复现——自监督学习SimCLR跑自己的数据集(TensorFlow2) 代码链接:添加链接描述 框架用的是tensorflow2,这里就不详细说明SimCLR的原理和环境配置了。 原版...

【理论知识】实际部署中tensorrt的简单理解
搭建tensorrt的基本流程 ➢ 基本流程 ➢ 构建期 ➢ 建立 Builder(引擎构建器) ➢ 创建 Network(计算图内容) ➢ 生成 SerializedNetwork(网络的 TRT ...

Python实现图片美化,醉后不知天在水?(附上代码) | 机器学习
目录 前言 项目说明 项目结构 数据准备 魔改代码 总结 前言 根据我的另一篇文章:如何将照片美化,DPED机器学习开源项目安装使用 | 机器学习_阿良的博客-CSDN博客 发现DPED项目需要命令化...

rsync命令详解
rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的"rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而...

Ubuntu20.04安装tensorflow2.8.0+CUDA11.4
Ubuntu20.04安装tensorflow2.8.0+CUDA11.4 * - 1. 创建虚拟环境 - 2. 安装tensorflow - 3. 安装CUDA - 4. 安装cuDNN - + 4...

人工智能历史与研究
一、人工智能简介 人工智能(英语:Artificial Intelligence,缩写为AI)亦称智械、机器智能,指由人制造出来的机器所表现出来的智能。通常人工智能是指通过普通计算机程序来呈现人类智能...

前车碰撞预警——FCW,基于深度学习和单目摄像头测距的前车碰撞预警源码
前车碰撞预警——FCW,基于深度学习和单目摄像头测距的前车碰撞预警源码。 单目测距,多目标跟踪。 车辆检测,智能adas,FCW,价格只包括源码及设计文档讲解。 我使用的版本说明: gpu版本: an...

Ubuntu系统安装opencv详细操作及具体应用
Ubuntu系统安装opencv详细操作及具体应用 前言 一、opencv是个什么东西 二、opencv的安装 * 1、资源准备及前期准备 2、安装编译 3、配置更改 4、验证版本 三、opencv应...

ML Collections的介绍(一)
在看一篇论文的源码时,看到import ml_collections这行代码,系统报错,经过寻找之后发现并不是源码中的一个文件,之后感觉应该是一个深度学习的安装包,然后就在网上搜索这个包的安装过程,却...

【cartogarpher_ros】一: ros系统下的快速安装
Cartographer是一个跨多个平台和传感器配置提供 2D 和 3D实时同步定位和映射 ( SLAM ) 的系统。 使用Cartographer有Ros集成环境和无Ros环境,对于新手快速入门,推...

数据分类分析–聚类
文章目录 一、基本概念 二、基于划分的方法 * 1.划分的思想 2.K-means 3.k-中心点算法 三、基于层次的方法 * 1.簇间距离: 2.AGNES 四、基于密度的方法 * 1.DBSCAN...

OpenCV-Python自适应直方图均衡类CLAHE及方法详解
一、引言 对比度受限的自适应直方图均衡在OpenCV中是通过类CLAHE来提供实现的,老猿没研究过C++中的应用,但OpenCV-Python中应用时与普通的Python类构建对象的机制有所不同,老猿...

Windows下安装mmdetection
为了隔绝 Windows 环境不被影响,我们需要将 mmdetection 安装在 anaconda 虚拟环境下。 一、安装 anaconda 1、下载 anaconda 2、安装 anaconda ...

【TF2】Eager Execution机制
1.1 eager execution 引入 1.2 理解eager execution 自己理解,eager 模式就是类似于 python 这样的命令式编程,写好程序之后,不需要编译,就可以直接运行...