本篇文章同步發布於 Python pandas 套件如何排序 DataFrame 資料?【Python 處理 Excel #9】
這篇文章介紹 Python pandas 如何排序 DataFrame 資料。
文章中使用 example.xlsx 作為說明用的案例資料。example.xlsx 的內容如下:
| material | moq | lead_time |
|---|---|---|
| PANEL001 | 100 | 60 |
| LABLE001 | 20000 | 7 |
| HINGE001 | 300 | 45 |
| CHASSIS001 | 500 | 60 |
| CARTON001 | 20000 | 7 |
| CABLE002 | 20000 | 45 |
| CABLE001 | 15000 | 45 |
要對 DataFrame 進行單一欄位排序,可以使用 sort_values() 方法。以下是針對 lead_time 欄位進行升冪排序的例子:
import pandas as pd
# 從 Excel 檔案讀取資料
df = pd.read_excel('example.xlsx')
# 按照 lead_time 進行升冪排序
sorted_df = df.sort_values(by='lead_time', ascending=True)
print(sorted_df)
by 參數指定要排序的欄位,ascending 參數指定排序方式,True 表示升冪排序。lead_time 的值從小到大排序。最小的 lead_time 值是 7,然後是 45,最後是 60。 如果 lead_time 值相同,pandas 將根據原始資料中的列的先後順序排相對位置。| material | moq | lead_time |
|---|---|---|
| LABLE001 | 20000 | 7 |
| CARTON001 | 20000 | 7 |
| HINGE001 | 300 | 45 |
| CABLE002 | 20000 | 45 |
| CABLE001 | 15000 | 45 |
| PANEL001 | 100 | 60 |
| CHASSIS001 | 500 | 60 |
除了單一欄位排序,pandas 也支援多重排序。多重排序允許使用者依照多個欄位的組合來排序 DataFrame。 多重排序的運作方式如下:
透過多重排序,使用者能更精確地控制 DataFrame 的排序順序。
若要對多個欄位進行排序,可以在 sort_values() 方法中傳入一個列表 (list)。以下是針對 material、moq 和 lead_time 進行排序的例子:
# 按照 material、moq 和 lead_time 進行排序
multi_sorted_df = df.sort_values(by=['material', 'moq', 'lead_time'], ascending=[True, False, True])
print(multi_sorted_df)
by 參數傳入一個包含多個欄位名稱的列表,ascending 參數也可以傳入一個列表,分別對應每個欄位的排序方式,True 表示升冪,False 表示降冪。| material | moq | lead_time |
|---|---|---|
| CABLE001 | 15000 | 45 |
| CABLE002 | 20000 | 45 |
| CARTON001 | 20000 | 7 |
| CHASSIS001 | 500 | 60 |
| HINGE001 | 300 | 45 |
| LABLE001 | 20000 | 7 |
| PANEL001 | 100 | 60 |
sort_values() 方法可以對 DataFrame 進行排序。ascending 參數可以用來控制排序的方式,True 表示升冪,False 表示降冪。本篇文章同步發布於 Python pandas 套件如何排序 DataFrame 資料?【Python 處理 Excel #9】