ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python学习笔记:pd.sort_values实现排序

2021-10-13 01:02:20  阅读:302  来源: 互联网

标签:sort Python col1 df values -- 排序


pandas 中的 sort_values 函数类似于 SQL 中的 order by,可以将数据集依据特定的字段进行排序。

可根据列数据,也可以根据行数据排序。

一、介绍

使用语法为:

df.sort_values(by='xxx', axis=0, ascending=True, inplace=False,
              kind='quicksort', na_position='last', ignore_index=False, key=None)

参数:

by -- 指定列名(axis=0或者'index')或索引值(axis=1或者'columns')
axis -- 按行、按列,默认axis=0按指定列排序
ascending -- 是否升序 默认为True
inplace -- 是否修改原对象
kind -- 排序算法 快排quicksort、归并mergesort、堆排序heapsort、稳定排序stable,默认快排
na_position -- {'first', 'last'} 设定缺失值的显示位置
ignore_index -- 排序后是否重置索引
key -- 排序之前使用的函数 (version 1.1.0 后才有该参数)

二、实操

  • 构建测试数据集
# 构建测试数据集
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,2,9,4,8]})
print(df)
'''
  col1  col2  col3
0    A     2     0
1    A     1     1
2    B     9     2
3  NaN     8     9
4    D     7     4
5    C     7     8
'''
  • 按列排序
# 依据第一列排序 并将该列空值放在首位
df.sort_values(by='col1', na_position='first')

# 依据第二、三列倒序
df.sort_values(by=['col2', 'col3'], ascending=False)

# 替换原数据
df.sort_values(by='col1', inplace=True)
  • 按行排序
# 按照索引值为0的行 即第一行的值来降序
x = pd.DataFrame({'x1':[1,2,2,3],
                  'x2':[4,3,2,1],
                  'x3':[3,2,4,1]})
print(x)
x.sort_values(by=0, ascending=False, axis=1)
'''
   x2  x3  x1
0   4   3   1
1   3   2   2
2   2   4   2
3   1   1   3
'''
  • 多列顺序
# 按第一列降序 第二列升序排列
df.sort_values(by=['col1', 'col2'], ascending=[False, True])
  • 索引重置
df.sort_values(by='col1', ignore_index=True)
  • key参数解释
data1 = pd.DataFrame({
    'col1': [2, 1, 9, 8, 7, 4],
    'col2': [0, 1, 9, 4, 2, 3],
    'col3': ['a', 'e', 'F', 'B', 'c', 'D']
})
print(data1)
'''
   col1  col2 col3
0     2     0    a
1     1     1    e
2     9     9    F
3     8     4    B
4     7     2    c
5     4     3    D
'''

# 默认字母排序 ASCII码
data1.sort_values(by='col3') 

# 先转换为小写字母再排序
data1.sort_values(by='col3', key=lambda x: x.str.lower())

参考链接:Pandas之排序函数sort_values()

参考链接:pandas中sort_values()使用

参考链接:图解pandas的排序sort_values机制

参考链接:pandas.DataFrame.sort_values

标签:sort,Python,col1,df,values,--,排序
来源: https://www.cnblogs.com/hider/p/15400313.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有