Pandas 可以說是 在Python數據科學領域應用最為廣泛的工具之一。

Pandas是一種高效的數據處理庫,它以 dataframe 和 series 為基本數據類型,呈現出類似excel的二維數據。

在數據處理過程中,咱們經常需要將數據按照一定的要求進行排序,以方便展示。

這里,陽哥來給大家分享下 在 Pandas 中排序的幾種常用方法,主要包括 sort_index 和 sort_values 。

01、按索引排序

數據準備

文中主要使用了 pandas 和 numpy ,首先導入 Python 庫,如下:

import pandas as pdimport numpy as np
print(f'pandas version: {pd.__version__}') 
# pandas version 1.3.2

本次使用的數據如下:

data = {    'brand':['Python數據之道','價值前瞻','菜鳥數據之道','Python','Java'],    'B':[4,6,8,12,10],    'A':[10,2,5,20,16],    'D':[6,18,14,6,12],    'years':[4,1,1,30,30],    'C':[8,12,18,8,2],
}
index = [9,3,4,5,2]
df = pd.DataFrame(data=data,index=index)
df

按行索引排序

sort_index() 是 pandas 中按索引排序的函數,默認情況下, sort_index 是按行索引來排序。

通過設置參數 ascending 可以設置升序或降序排列,默認情況下是 ascending=True ,為升序排列。

設置 ascending=False 時,為降序排列,如下:

按列的名稱排序

通過設置參數 axis=1 可實現按列的名稱排序,如下:

同樣的,可以設置 參數 ascending 的值,如下:

關于按列的名稱排序,更多的方法,可以參考下面的內容:

  • Pandas實用技能,將列(column)排序的幾種方法

02、按數值排序

sort_values() 是 pandas 中按數值排序的函數。

按單個列的值排序

sort_values() 中設置單個列的列名稱,可以對單個列進行排序,通過設置參數 ascending 可以設置升序或降序排列,如下:

按多個列的值排序

同時,sort_values() 可以對多個列進行不同的排序,通過設置列明和排序方式組合來實現,如下:

設置參數 ascending ,years 列為升序,B 列為降序,如下:

選擇排序算法

選擇排序算法,參數 kind 默認是 'quicksort',其他算法有 mergesort, heapsort, stable。

該參數只針對單個列時才有效。

在 numpy 的 sort文檔中,對幾種排序的特點進行了描述,主要是程序運行時占用的資源和運行速度有差異。

numpy 文檔地址:

https://numpy.org/doc/stable/reference/generated/numpy.sort.html#numpy.sort

示例如下:

忽略索引

在排序過程中,還可以引入 ignore_index 參數,來對行索引重新設置,如下:

inplace

inplace 是 pandas 中常見的一個參數。

inplace = True:不創建新的對象,直接對原始對象進行修改;默認是 False,即創建新的對象進行修改,原對象不變,和深復制和淺復制有些類似。

缺失值

先構造一個含缺失值的 dataframe,如下:

data = {    'brand':['Python數據之道','價值前瞻','菜鳥數據之道','Python','Java'],    'B':[4,6,8,np.nan,12],    'A':['Lemon','emma','ZW','app','John'],    'D':[6,18,14,6,12],    'years':[4,1,1,30,30],    'C':[8,12,18,8,2],
}
index = [9,3,4,5,2]
df1 = pd.DataFrame(data=data,index=index)
df1

缺失值排在最前面:

缺失值排在最后面:

key 參數

通過設置 key 參數,可以將列按照特定條件進行排序,對比下下面的排序:

以上就是關于 Pandas 中排序的介紹,歡迎大家來暢聊,Pandas 中有哪些實用的小技巧~~