Pandas数据排序——【按索引排序sort_index()方法、按值排序sort_value()方法】
文章目录
- 按索引排序——sort_index()
- 对Series排序
- 对DataFrame排序
- 按值排序——sort_value()
- 对Series进行排序
- 对DataFrame进行排序
按索引排序——sort_index()
sort_index(axis=0, level=None, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’,sort_remaining=True)
上述方法中常用参数:
axis:轴索引(排序的方向),0表示按index,1表示按columns
level:若不为None,则对指定索引级别的值进行排序
ascending:是否升序排列,默认为True,表示升序
inplace:默认为False,表示对数据表进行排序,不创建新的实例
kind:选择排序算法
这里只举例kind参数的作用,其他参数在下文的应用中会被用到
arrays = [np.array(['qux', 'qux', 'foo', 'foo','baz', 'baz', 'bar', 'bar']),np.array(['two', 'one', 'two', 'one','two', 'one', 'two', 'one'])]
s = pd.Series([1, 2, 3, 4, 5, 6, 7, 8], index=arrays)
print("s:\n", s)
print("s.sort_index(level=0):\n", s.sort_index(level=0))
print("s.sort_index(level=1:\n", s.sort_index(level=1))
输出结果:
s:
qux two 1one 2
foo two 3one 4
baz two 5one 6
bar two 7one 8
dtype: int64s.sort_index(level=0):
bar one 8two 7
baz one 6two 5
foo one 4two 3
qux one 2two 1
dtype: int64s.sort_index(level=1:
bar one 8
baz one 6
foo one 4
qux one 2
bar two 7
baz two 5
foo two 3
qux two 1
dtype: int64
对Series排序
import pandas as pd
import numpy as npser_obj = pd.Series(range(10, 15), index=[5, 1, 3, 1, 2])
print("ser_obj:\n", ser_obj)
print("sort:\n", ser_obj.sort_index()) # 升序排列
print("Descending order:\n", ser_obj.sort_index(ascending=False)) # 降序排列
输出结果:
ser_obj:5 10
1 11
3 12
1 13
2 14
dtype: int64
sort:1 11
1 13
2 14
3 12
5 10
dtype: int64
Descending order:5 10
3 12
2 14
1 11
1 13
dtype: int64
对DataFrame排序
df_obj = pd.DataFrame(np.arange(12).reshape(3, 4), index=[2, 1, 3])
print("df_obj:\n", df_obj)
print("sort:\n", df_obj.sort_index())
print("Descending order:\n", df_obj.sort_index(axis=1, ascending=False))
# 按columns进行降序排序
输出结果:
df_obj:0 1 2 3
2 0 1 2 3
1 4 5 6 7
3 8 9 10 11
sort:0 1 2 3
1 4 5 6 7
2 0 1 2 3
3 8 9 10 11
Descending order:3 2 1 0
2 3 2 1 0
1 7 6 5 4
3 11 10 9 8
按值排序——sort_value()
sort_value(by, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’)
上述方法中常用参数:
by: 表示排序的列
na_position:为first则将NaN值放在开头;为last则将NaN值放在最后
对Series进行排序
ser_obj1 = pd.Series([4, np.nan, 6, np.nan, -3, 2])
print("ser_obj1:\n", ser_obj1)
print("ser_obj1.sort_values():\n", ser_obj1.sort_values()) # 按值升序排列
print("sort_values(na_position='first'):\n", ser_obj1.sort_values(na_position='first'))
输出结果:
ser_obj1:0 4.0
1 NaN
2 6.0
3 NaN
4 -3.0
5 2.0
dtype: float64
ser_obj1.sort_values():4 -3.0
5 2.0
0 4.0
2 6.0
1 NaN
3 NaN
dtype: float64
sort_values(na_position='first'):1 NaN
3 NaN
4 -3.0
5 2.0
0 4.0
2 6.0
dtype: float64
对DataFrame进行排序
df_obj1 = pd.DataFrame([[0.4, -0.1, -0.3, 0.0],[0.2, 0.6, -0.1, -0.7],[0.8, 0.6, -0.5, 0.1]])
print("df_obj1:\n", df_obj1)
print("df1.value:\n", df_obj1.sort_values(by=2, ascending=False))
# 对列索引为2的数据进行降序排序
输出结果:
df_obj1:0 1 2 3
0 0.4 -0.1 -0.3 0.0
1 0.2 0.6 -0.1 -0.7
2 0.8 0.6 -0.5 0.1
df1.value:0 1 2 3
1 0.2 0.6 -0.1 -0.7
0 0.4 -0.1 -0.3 0.0
2 0.8 0.6 -0.5 0.1
Pandas数据排序——【按索引排序sort_index()方法、按值排序sort_value()方法】相关推荐
- Cris 的 Python 数据分析笔记 05:Pandas 数据读取,索引,切片,计算,列整合,过滤,最值
Pandas 数据读取,索引,切片,计算,列整合,过滤,最值 文章目录 Pandas 数据读取,索引,切片,计算,列整合,过滤,最值 1. read_csv 函数 2. DataFrame 数据结构的 ...
- pandas按照索引来赋值,按照数据表的索引批量给某一个变量赋值的方法。
df_test = pd.DataFrame(np.arange(40).reshape(10, 4), columns=['a', 'b', 'c', 'd'], index=np.arange(1 ...
- pandas数据读取处理详解
文章目录 数据读取 read_table:读取txt文本文件 逐块读取 read_excel:读取excel文件 读取一个工作簿下多个sheet:ExcelFile类 read_fwf:读取固定宽度文 ...
- java map 值排序_使用Java8 Stream API对Map类型按照键或值进行排序
在这篇文章中,您将学习如何使用Java对Map按照键或值进行排序.前几日有位朋友面试遇到了这个问题,看似很简单的问题,但是如果不仔细研究一下也是很容易让人懵圈的面试题.所以我决定写这样一篇文章.在Ja ...
- 2021年大数据常用语言Scala(十):基础语法学习 方法
目录 方法 定义方法 返回值类型推断 方法 一个类可以有自己的方法,scala中的方法和Java方法类似.但scala与Java定义方法的语法是不一样的. 定义方法 语法 def methodName ...
- 表达式求值(二叉树方法/C++语言描述)(二)
表达式二叉树节点的数据可能是运算数或运算符,可以使用一个联合体进行存储:同时还需要一个变量来指示存储的是运算数还是运算符,可以采用和栈方法求值中一样的枚举类型TokenType: 1 typedef ...
- 反射java调用方法_java 使用反射调用方法
每个Method的对象对应一个具体的底层方法.获得Method对象后,程序可以使用Method里面的invoke方法来执行该底层方法. Object invoke(Object obj,Object ...
- Pandas数据排序,人人都能学会的几种方法
来源:Python数据之道 (ID:PyDataLab) 作者:阳哥 Pandas 可以说是 在Python数据科学领域应用最为广泛的工具之一. Pandas是一种高效的数据处理库,它以 datafr ...
- Python数据攻略-Pandas数据排序方法
大家好,我是Mr数据杨.我们从数据准备开始,这如同三国的战争前的备战,必须有充足的粮草和士兵.而.sort_values()和.sort_index()方法,则像是战争中的行军路线,决定着军队的移动顺 ...
最新文章
- C++利用构造函数限制对象的创建
- Silverlight 5 新特性
- markdown居中文本 - 代码篇
- Go1.18 新特性:高效复制,strings, bytes 库新增 Clone 功能
- CocoaPods加载第三方库
- 无法验证的代码未能通过策略检查
- 白杨SEO:SEM和SEO有什么区别呢?
- javascript new对象的过程
- linux新硬盘装系统,目前是windows,要全新硬盘安装linux,该怎么操作?
- SpringBoot整合腾讯云直播,生成推拉流配置及工具类详细讲解!
- 国家电网车辆智能车载终端4G全网通T-BOX 、车联网OBD终端、4G TBOX终端
- JZOJ 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)
- 如何解决Xcode中的SIGABRT错误
- 马斯克要买地当「城主」/ 苹果手表引入ChatGPT/ 小鹏辟谣多名核心高管离职…今日更多新鲜事在此...
- ICCV 2019 Vehicle Re-identification with Viewpoint-aware Metric Learning
- 与苹果和谷歌抗争堡垒创造者发动了远征
- android 的injustdecodebounds
- Photoshop CS6调整界面字体大小
- 快递公司泄露买家信息最高罚3万 快递员双挨罚
- 555定时器回差电压计算公式_用 555定时器组成施密特触发器 , 当输入控制端外接 10V电压时,回差电压为( ) 。_学小易找答案...
热门文章
- 扫地机器人的特点描写_扫地机器人的特点和作用
- sublime用cmd窗口调试python_如何使用xdebug和sublime调试python脚本
- textureview 旋转90度后平铺_C++初级编程NOIP题:11H1537: 图像旋转
- 安卓投屏大师_苹果,安卓手机如何免费投屏?只要悄悄按下这里,便能轻松实现...
- 如何构建自己的SIP SERVER!
- 禅道——需要我们斟酌
- WinCE内核裁减(中文字体)及字库和内核的分离
- 机器学习复制粘贴笔记要点
- C#多线程之旅(2)——详解线程的开始和创建
- mac securecrt程序无响应_如何重置mac上的系统管理控制器smc教程