pandas对数据列进行排序,pandas按某两列排序

  pandas对数据列进行排序,pandas按某两列排序

  本文主要介绍熊猫实现多列排序——升序,有很好的参考价值,希望对大家有所帮助。如有错误或不足之处,请不吝赐教。

  

目录

熊猫按照多栏排序、升序熊猫排序、使用排序函数排序。

 

  

pandas按照多列排序ascending

 

  代码示例:

  进口熊猫作为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())

  打印:

  日期最高温度最低温度天气风向风力空气质量

  14 2019/7/4 38 25晴~多云西南风2级好

  06 2019/7/26 37 27晴西南风2级好

  42 2019/5/23 37 21晴东南风2级良

  83 2019/7/3 36 24晴东南风一级好

  04 2019/7/24 36 27多云~雷阵雨西南风2级好

  #按多列排序

  Print(df.sort_values(by=[最高温度,最低温度],升序=True)。头(10))

  打印:

  日期最高温度最低温度天气风向风力空气质量

  33 2019/12/30-5-12晴西北风四级优

  34 2019/12/31-3-10晴西北风一级优

  2 2019/2/12-3-8小雪~多云东北风二级优

  4 2019/2/14-3-6小雪~多云东南风2级好

  4 2019/1/15-2-10晴西北风3级好

  7 2019/2/7-2-7多云东北风3级优

  32019/2/8-1-7多云西南风二级优

  4 2019/1/5 0 -8多云东北风二级优

  2019/2/9 9 0-8多云东北风二级优

  0 2019/2/10 0-8多云东南风一级优

  Print(df.sort_values(by=[最高温度,最低温度],升序=False)。头(10))

  打印:

  日期最高温度最低温度天气风向风力空气质量

  14 2019/7/4 38 25晴~多云西南风2级好

  06 2019/7/26 37 27晴西南风2级好

  42 2019/5/23 37 21晴东南风2级良

  21 2019/7/21 36 27晴~多云西南风2级轻度污染

  04 2019/7/24 36 27多云~雷阵雨西南风2级好

  27 2019/7/27 36 27多云东南风2级轻度污染

  74 2019/6/24 36 24多云东南风2级好

  75 2019/6/25 36 24多云东南风2级好

  83 2019/7/3 36 24晴东南风一级好

  70 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)#按列索引进行降序排序

 

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

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

  

 

  

排名

 

  Series

  

s.rank(method=‘first)

 

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

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

  

 

  DataFrame:

  

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

 

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

  以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: