本篇文章同步發布於 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】