pandas怎么实现按照多列排序ascending(pandas,开发技术)

时间:2024-05-02 13:56:08 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

pandas按照多列排序ascending

代码示例:

importpandasaspd#读取文件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())'''打印:日期最高温度最低温度天气风向风级空气质量1842019/7/43825晴~多云西南风2级良2062019/7/263727晴西南风2级良1422019/5/233721晴东南风2级良1832019/7/33624晴东南风1级良2042019/7/243627多云~雷阵雨西南风2级良'''#按照多列排序print(df.sort_values(by=['最高温度','最低温度'],ascending=True).head(10))'''打印:日期最高温度最低温度天气风向风级空气质量3632019/12/30-5-12晴西北风4级优3642019/12/31-3-10晴西北风1级优422019/2/12-3-8小雪~多云东北风2级优442019/2/14-3-6小雪~多云东南风2级良142019/1/15-2-10晴西北风3级良372019/2/7-2-7多云东北风3级优382019/2/8-1-7多云西南风2级优42019/1/50-8多云东北风2级优392019/2/90-8多云东北风2级优402019/2/100-8多云东南风1级优'''print(df.sort_values(by=['最高温度','最低温度'],ascending=False).head(10))'''打印:日期最高温度最低温度天气风向风级空气质量1842019/7/43825晴~多云西南风2级良2062019/7/263727晴西南风2级良1422019/5/233721晴东南风2级良2012019/7/213627晴~多云西南风2级轻度污染2042019/7/243627多云~雷阵雨西南风2级良2072019/7/273627多云东南风2级轻度污染1742019/6/243624多云东南风2级良1752019/6/253624多云东南风2级良1832019/7/33624晴东南风1级良1702019/6/203623多云~晴东南风2级轻度污染'''print(df.sort_values(by=['最高温度','最低温度'],ascending=[True,False]).head(10))'''打印:日期最高温度最低温度天气风向风级空气质量3632019/12/30-5-12晴西北风4级优442019/2/14-3-6小雪~多云东南风2级良422019/2/12-3-8小雪~多云东北风2级优3642019/12/31-3-10晴西北风1级优372019/2/7-2-7多云东北风3级优142019/1/15-2-10晴西北风3级良382019/2/8-1-7多云西南风2级优42019/1/50-8多云东北风2级优392019/2/90-8多云东北风2级优402019/2/100-8多云东南风1级优'''

pandas排序、排名函数的使用

排序

Series

s.sort_index(ascending=False)

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

pandas怎么实现按照多列排序ascending

s.sort_values(ascending=False)

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

pandas怎么实现按照多列排序ascending

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参数,设置降序还是升序排序。

pandas怎么实现按照多列排序ascending

DataFrame:

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

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

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:pandas怎么实现按照多列排序ascending的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Java中?extendsT和?superT是什么下一篇:

6 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18