pandas排序以及獲取序號


參考:https://blog.csdn.net/qq_22238533/article/details/72395564

如果不考慮序號問題,要直接排序則使用pandas  sort_values函數

df.sort_values(by='排序字段',axis=0,ascending=True, inplace=False, na_position=‘last’)

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

 ====如果要獲取序號👇

  

#進行對comment_num排序得出sort_num列的序號

data['sort_num']=data['comment_num'].rank(ascending=0,method='dense')

  rank()中兩個參數:

ascending,就是選擇是升序還是降序排列

method較重要,上圖排序后結果,發現如果相同則並列排序,method則為控制排序方法

method='first'    如果出現相等,則取最先出現的值序號為“最小”,其他相同值依次按1遞增

data['sort_num']=data['comment_num'].rank(ascending=0,method='first')

 

 method='min' 相等則序號一樣,新增一個相同序號,下一個排名序號則會推后+1

data['sort_num']=data['comment_num'].rank(ascending=0,method='min')

 

  method='max'

data['sort_num']=data['comment_num'].rank(ascending=0,method='max')

 

  ---------------------------------組內排序-----------------------------

   以cate字段為一組,對comment排序

data['group_sort']=data['comment_num'].groupby(data['cate']).rank(ascending=0,method='dense')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM