溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Pandas之排序函數(shù)sort_values()的實(shí)現(xiàn)

發(fā)布時間:2020-09-29 05:45:20 來源:腳本之家 閱讀:295 作者:明媚的夏午 欄目:開發(fā)技術(shù)

一、sort_values()函數(shù)用途

pandas中的sort_values()函數(shù)原理類似于SQL中的order by,可以將數(shù)據(jù)集依照某個字段中的數(shù)據(jù)進(jìn)行排序,該函數(shù)即可根據(jù)指定列數(shù)據(jù)也可根據(jù)指定行的數(shù)據(jù)排序。

二、sort_values()函數(shù)的具體參數(shù)

用法:

DataFrame.sort_values(by=‘##',axis=0,ascending=True, inplace=False, na_position=‘last')

參數(shù)說明

參數(shù) 說明
by 指定列名(axis=0或'index')或索引值(axis=1或'columns')
axis 若axis=0或'index',則按照指定列中數(shù)據(jù)大小排序;若axis=1或'columns',則按照指定索引中數(shù)據(jù)大小排序,默認(rèn)axis=0
ascending 是否按指定列的數(shù)組升序排列,默認(rèn)為True,即升序排列
inplace 是否用排序后的數(shù)據(jù)集替換原來的數(shù)據(jù),默認(rèn)為False,即不替換
na_position {‘first',‘last'},設(shè)定缺失值的顯示位置

三、sort_values用法舉例

創(chuàng)建數(shù)據(jù)框

#利用字典dict創(chuàng)建數(shù)據(jù)框
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,9,4,2,8]
})
print(df)

>>>
 col1 col2 col3
0  A   2   0
1  A   1   1
2  B   9   9
3 NaN   8   4
4  D   7   2
5  C   7   8

依據(jù)第一列排序,并將該列空值放在首位

#依據(jù)第一列排序,并將該列空值放在首位
print(df.sort_values(by=['col1'],na_position='first'))
>>>
 col1 col2 col3
3 NaN   8   4
0  A   2   0
1  A   1   1
2  B   9   9
5  C   7   8
4  D   7   2

依據(jù)第二、三列,數(shù)值降序排序

#依據(jù)第二、三列,數(shù)值降序排序
print(df.sort_values(by=['col2','col3'],ascending=False))
>>>
 col1 col2 col3
2  B   9   9
3 NaN   8   4
5  C   7   8
4  D   7   2
0  A   2   0
1  A   1   1

根據(jù)第一列中數(shù)值排序,按降序排列,并替換原數(shù)據(jù)

#根據(jù)第一列中數(shù)值排序,按降序排列,并替換原數(shù)據(jù)
df.sort_values(by=['col1'],ascending=False,inplace=True,
           na_position='first')
print(df)
>>>
 col1 col2 col3
3 NaN   8   4
4  D   7   2
5  C   7   8
2  B   9   9
1  A   1   1
0  A   2   0

按照索引值為0的行,即第一行的值來降序排序

x = pd.DataFrame({'x1':[1,2,2,3],'x2':[4,3,2,1],'x3':[3,2,4,1]}) 
print(x)
#按照索引值為0的行,即第一行的值來降序排序
print(x.sort_values(by =0,ascending=False,axis=1))
>>>
  x1 x2 x3
0  1  4  3
1  2  3  2
2  2  2  4
3  3  1  1
  x2 x3 x1
0  4  3  1
1  3  2  2
2  2  4  2
3  1  1  3

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI