pandas实现按照多列排序-ascending

目录

pandas按照多列排序ascending

pandas排序、排名函数的使用

排序

排名

pandas按照多列排序ascending

代码示例:

import pandas as pd #读取文件 df = pd.read_csv('./TianQi.csv') #字符串替换和类型转换 df['最高温度'] = df['最高温度'].str.replace('℃','').astype('int32') df.loc[:,'最低温度'] = df['最低温度'].str.replace('℃','').astype('int32') #排序并获取最高温度前5名 print(df.sort_values(by='最高温度',ascending=False).head()) ''' 打印: 日期 最高温度 最低温度 天气 风向 风级 空气质量 184 2019/7/4 38 25 晴~多云 西南风 2级 良 206 2019/7/26 37 27 晴 西南风 2级 良 142 2019/5/23 37 21 晴 东南风 2级 良 183 2019/7/3 36 24 晴 东南风 1级 良 204 2019/7/24 36 27 多云~雷阵雨 西南风 2级 良 ''' #按照多列排序 print(df.sort_values(by=['最高温度','最低温度'],ascending= True).head(10)) ''' 打印: 日期 最高温度 最低温度 天气 风向 风级 空气质量 363 2019/12/30 -5 -12 晴 西北风 4级 优 364 2019/12/31 -3 -10 晴 西北风 1级 优 42 2019/2/12 -3 -8 小雪~多云 东北风 2级 优 44 2019/2/14 -3 -6 小雪~多云 东南风 2级 良 14 2019/1/15 -2 -10 晴 西北风 3级 良 37 2019/2/7 -2 -7 多云 东北风 3级 优 38 2019/2/8 -1 -7 多云 西南风 2级 优 4 2019/1/5 0 -8 多云 东北风 2级 优 39 2019/2/9 0 -8 多云 东北风 2级 优 40 2019/2/10 0 -8 多云 东南风 1级 优 ''' print(df.sort_values(by=['最高温度','最低温度'],ascending= False).head(10)) ''' 打印: 日期 最高温度 最低温度 天气 风向 风级 空气质量 184 2019/7/4 38 25 晴~多云 西南风 2级 良 206 2019/7/26 37 27 晴 西南风 2级 良 142 2019/5/23 37 21 晴 东南风 2级 良 201 2019/7/21 36 27 晴~多云 西南风 2级 轻度污染 204 2019/7/24 36 27 多云~雷阵雨 西南风 2级 良 207 2019/7/27 36 27 多云 东南风 2级 轻度污染 174 2019/6/24 36 24 多云 东南风 2级 良 175 2019/6/25 36 24 多云 东南风 2级 良 183 2019/7/3 36 24 晴 东南风 1级 良 170 2019/6/20 36 23 多云~晴 东南风 2级 轻度污染 ''' print(df.sort_values(by=['最高温度','最低温度'],ascending= [True,False]).head(10)) ''' 打印: 日期 最高温度 最低温度 天气 风向 风级 空气质量 363 2019/12/30 -5 -12 晴 西北风 4级 优 44 2019/2/14 -3 -6 小雪~多云 东南风 2级 良 42 2019/2/12 -3 -8 小雪~多云 东北风 2级 优 364 2019/12/31 -3 -10 晴 西北风 1级 优 37 2019/2/7 -2 -7 多云 东北风 3级 优 14 2019/1/15 -2 -10 晴 西北风 3级 良 38 2019/2/8 -1 -7 多云 西南风 2级 优 4 2019/1/5 0 -8 多云 东北风 2级 优 39 2019/2/9 0 -8 多云 东北风 2级 优 40 2019/2/10 0 -8 多云 东南风 1级 优 ''' pandas排序、排名函数的使用 排序

Series

s.sort_index(ascending=False)

对series的索引进行排序,默认升序

s.sort_values(ascending=False)

对series的值进行排序,对值进行排序的时候,无论是升序还是降序,缺失值(NaN)都会排在最后面

DataFrame:

dt.sort_index(ascending=False)#按列索引进行降序排序 dt.sort_inex(axis=1)#按行的索引进行排序 dt.sort_values(by='columns_name')#按指定列的值进行排序 dt.sort_values(by='row_name', axis=1)#按指定行的值进行排序

使用by参数进行某几列(行)排序的时候,以列表中的第一个为准,可能后面的不会生效,因为有的时候无法做到既对第一行(列)进行升序排序又对第二行(列)进行排序。

在指定行值进行排序的时候,必须设置axis=1,不然会报错,因为默认指定的是列索引,找不到这个索引所以报错,axis=1的意思是指定行索引。
 

排名

Series

s.rank(method=‘first')

对series的值进行升序排名,输出为排名,当排名相同时,输出平均排名,method=‘first’排名相同时按照值在数组中出现的顺序排序

method参数除了,first按值在原始数据中的出现顺序分配排名,还有min使用整个分组的最小排名,max是用整个分组的最大排名,average使用平均排名,也是默认的排名方式。还可以设置ascending参数,设置降序还是升序排序。

DataFrame:

dt.rank()#按列进行排名 dt.rank(axis=1)#按行进行排名

method与ascending参数的使用与Series的相同

以上为个人经验,希望能给大家一个参考,也希望大家多多支持易知道(ezd.cc)。

推荐阅读

    excel怎么用乘法函数

    excel怎么用乘法函数,乘法,函数,哪个,excel乘法函数怎么用?1、首先用鼠标选中要计算的单元格。2、然后选中单元格后点击左上方工具栏的fx公

    excel中乘法函数是什么?

    excel中乘法函数是什么?,乘法,函数,什么,打开表格,在C1单元格中输入“=A1*B1”乘法公式。以此类推到多个单元。1、A1*B1=C1的Excel乘法公式

    标准差excel用什么函数?

    标准差excel用什么函数?,函数,标准,什么,在数据单元格的下方输入l标准差公式函数公式“=STDEVPA(C2:C6)”。按下回车,求出标准公差值。详细

    金蝶凭证排序号乱了

    金蝶凭证排序号乱了,,1.金蝶的顺序号跟凭证号不一致怎么办没关系的,可以在凭证过滤界面选择按凭证号或者凭证顺序号来排序,一般都选择凭证号

    excel常用函数都有哪些?

    excel常用函数都有哪些?,函数,哪些,常用,1、SUM函数:SUM函数的作用是求和。函数公式为=sum()例如:统计一个单元格区域:=sum(A1:A10)  统计多个

    word图标排序快捷键|word的快捷图标

    word图标排序快捷键|word的快捷图标,,1. word的快捷图标1、大家说的都是如何打开word,而不是像建空白文件夹那样,因为没有直接新建空白word

    在excel中如何排序

    在excel中如何排序,排序,如何,excel,先选定工作表要排序的数据范围,然后点击上方的“数据”选项,选中“排序”,出现如下画面选择好“主要