目錄
- 一、索引排序df.sort_index()
- 二、資料值排序df.sort_values()
- 三、排序后,獲取前N行 nsmallest() 和 nlargest()
源Excel檔案pandas_sort.xlsx:
一、索引排序df.sort_index()
df.sort_index(axis=0, level=None, ascending=True, inplace=False,
kind='quicksort', na_position='last', sort_remaining=True, by=None)
功能:將索引重新排序,資料也跟著索引一起變化,
引數說明:
- axis:0按照行名排序;1按照列名排序
- level:默認None,否則按照給定的level順序排列,
- ascending:默認True升序排列;False降序排列
- inplace:默認False,否則排序之后的資料直接替換原來的資料框
- kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’,不用太關心,
- na_position:缺失值默認排在最后{"first","last"}
- by:按照某一列或幾列資料進行排序,但by引數不建議使用,
df = pd.read_excel(r'C:/Users/asus/Desktop/Python/pandas_sort.xlsx')
df = df.set_index('姓名') # 重新設定索引
df.sort_index() # 默認行索引升序
df.sort_index(axis=1,ascending=False) # 按列名(表頭),降序
df.sort_index(by=['班級','語文'],ascending=[True,False]) # 不推薦使用
自定義排序的順序串列函式:df.reindex()
二、資料值排序df.sort_values()
df.sort_values(by, axis=0, ascending=True, inplace=False,
kind='quicksort', na_position='last')
引數說明:
- axis:{0 or ‘index’, 1 or ‘columns’}, default 0,默認按照列排序,即縱向排序;如果為1,則是橫向排序,
- by:str or list of str;如果axis=0,那么by="列名";如果axis=1,那么by="行名",
- ascending:布爾型,True則升序,如果by=['列名1','列名2'],則該引數可以是[True, False],即第一欄位升序,第二個降序,
- inplace:布爾型,是否用排序后的資料框替換現有的資料框,
- kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’,似乎不用太關心,
- na_position:{‘first’, ‘last’}, default ‘last’,默認缺失值排在最后面,
df.sort_values('數學') # 數學升序
df.sort_values(by=['班級','數學'],ascending=[True,False]) # 班級升序,數學降序
df.sort_values(by='周*燁',axis=1,ascending=False) # '周*燁'這行降序

三、排序后,獲取前N行 nsmallest() 和 nlargest()
df.nsmallest(4,columns=['語文']) # 語文成績最低的4位同學
df.nlargest(4,columns=['數學']) # 數學成績最高的4位同學

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/280166.html
標籤:其他
上一篇:Django中的CBV視圖
