Pandas數值排序 sort_values()的使用
參數解釋
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', # last,first;默認是last ignore_index=False, key=None)
參數的具體解釋為:
- by:表示根據什麼字段或者索引進行排序,可以是一個或多個
- axis:排序是在橫軸還是縱軸,默認是縱軸axis=0
- ascending:排序結果是升序還是降序,默認是升序
- inplace:表示排序的結果是直接在原數據上的就地修改還是生成新的DatFrame
- kind:表示使用排序的算法,快排quicksort,,歸並mergesort, 堆排序heapsort,穩定排序stable ,默認是 :快排quicksort
- na_position:缺失值的位置處理,默認是最後,另一個選擇是首位
- ignore_index:新生成的數據幀的索引是否重排,默認False(采用原數據的索引)
- key:排序之前使用的函數
數據值的排序主要使用sort_values(),數字按大小排序,字符按字母順序
Series和DataFrame都支持此方法
import pandas as pd df = pd.DataFrame([['liver','E',89,21,24,64], ['Arry','C',36,37,37,57], ['Ack','A',57,60,18,84], ['Eorge','C',93,96,71,78], ['Oah','D',65,49,61,86] ], columns = ['name','team','Q1','Q2','Q3','Q4']) res1 = df.Q1.sort_values() # DataFrame 需要傳入一個或多個排序的列名 res2 = df.sort_values('Q4') # 默認排序是升序,但可以指定排序方式 # 下例先按team升序排列,如遇到相同的team再按name降序排列 res3 = df.sort_values(by = ['team','name'], ascending = [True, False])
結果展示
df
res1
res2
res3
擴展
# 其他常用方法如下: s.sort_values(ascending = False) # 降序 s.sort_values(inplace = True) # 修改生效 s.sort_values(na_position = 'first') # 空值在前 # df按指定字段排列 df.sort_values(by = ['team']) df.sort_values('Q1') # 按多個字段,先排team,在同team內再看Q1 df.sort_values(by = ['mean','Q1']) # 全降序 df.sort_values(by = ['mean','Q1'], ascending = False) # 對應指定team升Q1降 df.sort_values(by = ['mean','Q1'], ascending = [True, False])
到此這篇關於Pandas數值排序 sort_values()的使用的文章就介紹到這瞭,更多相關Pandas數值排序 sort_values()內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Pandas索引排序 df.sort_index()的實現
- Python數據處理之pd.Series()函數的基本使用
- pandas刪除部分數據後重新生成索引的實現
- pandas實現按照多列排序-ascending
- pandas groupby分組對象的組內排序解決方案