文章目录

  • 按索引排序——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()方法】相关推荐

  1. Cris 的 Python 数据分析笔记 05:Pandas 数据读取,索引,切片,计算,列整合,过滤,最值

    Pandas 数据读取,索引,切片,计算,列整合,过滤,最值 文章目录 Pandas 数据读取,索引,切片,计算,列整合,过滤,最值 1. read_csv 函数 2. DataFrame 数据结构的 ...

  2. pandas按照索引来赋值,按照数据表的索引批量给某一个变量赋值的方法。

    df_test = pd.DataFrame(np.arange(40).reshape(10, 4), columns=['a', 'b', 'c', 'd'], index=np.arange(1 ...

  3. pandas数据读取处理详解

    文章目录 数据读取 read_table:读取txt文本文件 逐块读取 read_excel:读取excel文件 读取一个工作簿下多个sheet:ExcelFile类 read_fwf:读取固定宽度文 ...

  4. java map 值排序_使用Java8 Stream API对Map类型按照键或值进行排序

    在这篇文章中,您将学习如何使用Java对Map按照键或值进行排序.前几日有位朋友面试遇到了这个问题,看似很简单的问题,但是如果不仔细研究一下也是很容易让人懵圈的面试题.所以我决定写这样一篇文章.在Ja ...

  5. 2021年大数据常用语言Scala(十):基础语法学习 方法

    目录 方法 定义方法 返回值类型推断 方法 一个类可以有自己的方法,scala中的方法和Java方法类似.但scala与Java定义方法的语法是不一样的. 定义方法 语法 def methodName ...

  6. 表达式求值(二叉树方法/C++语言描述)(二)

    表达式二叉树节点的数据可能是运算数或运算符,可以使用一个联合体进行存储:同时还需要一个变量来指示存储的是运算数还是运算符,可以采用和栈方法求值中一样的枚举类型TokenType: 1 typedef ...

  7. 反射java调用方法_java 使用反射调用方法

    每个Method的对象对应一个具体的底层方法.获得Method对象后,程序可以使用Method里面的invoke方法来执行该底层方法. Object invoke(Object obj,Object ...

  8. Pandas数据排序,人人都能学会的几种方法

    来源:Python数据之道 (ID:PyDataLab) 作者:阳哥 Pandas 可以说是 在Python数据科学领域应用最为广泛的工具之一. Pandas是一种高效的数据处理库,它以 datafr ...

  9. Python数据攻略-Pandas数据排序方法

    大家好,我是Mr数据杨.我们从数据准备开始,这如同三国的战争前的备战,必须有充足的粮草和士兵.而.sort_values()和.sort_index()方法,则像是战争中的行军路线,决定着军队的移动顺 ...

最新文章

  1. C++利用构造函数限制对象的创建
  2. Silverlight 5 新特性
  3. markdown居中文本 - 代码篇
  4. Go1.18 新特性:高效复制,strings, bytes 库新增 Clone 功能
  5. CocoaPods加载第三方库
  6. 无法验证的代码未能通过策略检查
  7. 白杨SEO:SEM和SEO有什么区别呢?
  8. javascript new对象的过程
  9. linux新硬盘装系统,目前是windows,要全新硬盘安装linux,该怎么操作?
  10. SpringBoot整合腾讯云直播,生成推拉流配置及工具类详细讲解!
  11. 国家电网车辆智能车载终端4G全网通T-BOX 、车联网OBD终端、4G TBOX终端
  12. JZOJ 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)
  13. 如何解决Xcode中的SIGABRT错误
  14. 马斯克要买地当「城主」/ 苹果手表引入ChatGPT/ 小鹏辟谣多名核心高管离职…今日更多新鲜事在此...
  15. ICCV 2019 Vehicle Re-identification with Viewpoint-aware Metric Learning
  16. 与苹果和谷歌抗争堡垒创造者发动了远征
  17. android 的injustdecodebounds
  18. Photoshop CS6调整界面字体大小
  19. 快递公司泄露买家信息最高罚3万 快递员双挨罚
  20. 555定时器回差电压计算公式_用 555定时器组成施密特触发器 , 当输入控制端外接 10V电压时,回差电压为( ) 。_学小易找答案...

热门文章

  1. 扫地机器人的特点描写_扫地机器人的特点和作用
  2. sublime用cmd窗口调试python_如何使用xdebug和sublime调试python脚本
  3. textureview 旋转90度后平铺_C++初级编程NOIP题:11H1537: 图像旋转
  4. 安卓投屏大师_苹果,安卓手机如何免费投屏?只要悄悄按下这里,便能轻松实现...
  5. 如何构建自己的SIP SERVER!
  6. 禅道——需要我们斟酌
  7. WinCE内核裁减(中文字体)及字库和内核的分离
  8. 机器学习复制粘贴笔记要点
  9. C#多线程之旅(2)——详解线程的开始和创建
  10. mac securecrt程序无响应_如何重置mac上的系统管理控制器smc教程