pandas怎么实现按照多列排序ascending
导读:本文共2649字符,通常情况下阅读需要9分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: pandas按照多列排序ascending代码示例:importpandasaspd#读取文件df=pd.read_csv('./TianQi.csv')#字符串替换和类型转换df['最高温度']=df['最高温度'].str.replace('℃','').astype(... ...
目录
(为您整理了一些要点),点击可以直达。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的索引进行排序,默认升序
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的相同
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
pandas怎么实现按照多列排序ascending的详细内容,希望对您有所帮助,信息来源于网络。