跳到主要內容
Cypher's Practical Coding
正在啟動 Python 環境(首次約 15 秒)...

篩選與排序

每天看報表時,你不會想看全部 5000 筆商品,而是「只看價格超過 1000 的」或「按銷量排名」。pandas 的篩選和排序就像 Excel 的篩選功能,但可以用程式自動化,不用每次手動點。

你會學到什麼

  • df[條件] 篩選資料
  • &(且)和 |(或)組合多個條件
  • sort_values() 排序

條件篩選

df[條件] 篩選資料,就像在 Excel 設定「只顯示價格 > 1000 的列」:

小提醒:df["價格"] > 1000 會產生一串 True/False,pandas 用這串布林值決定哪些列要留下。這就是所謂的「布林索引」。

多條件篩選

&(且)和 |(或)組合條件。重要的是:每個條件都要用小括號包起來,否則 Python 會搞混運算順序。

小提醒:初學者最常忘記加小括號。df[df["類別"] == "上衣" & df["價格"] < 900] 會報錯,一定要寫成 df[(條件A) & (條件B)]

排序

sort_values() 可以按任意欄位排序,ascending=False 代表由大到小(降冪)。

小提醒:排序後的 index(最左邊的數字)不會重新編號。如果想要乾淨的 0, 1, 2... 序號,可以加上 .reset_index(drop=True)

AI 協作:學了這個,跟 AI 怎麼配合?

pandas 篩選語法比 Excel 篩選器強大,但條件邏輯要你來定。

你的人類優勢:

  • 你知道篩選條件的業務意義(「活躍客戶」= 最近 30 天有訂單?還是 90 天?)
  • 你能驗證篩選後的筆數是否合理

可以這樣跟 AI 說:

幫我篩選 2024 年 Q4 的訂單,金額 > 1000 且狀態為「已完成」,按金額從大到小排序。

練習題

互動示範

DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩
DEMO 3可以修改程式碼試玩

挑戰任務

Task 1

建立 DataFrame:商品 ['T恤','牛仔褲','外套','襯衫','短褲']、價格 [590,1290,2490,890,690],印出價格 >= 1000 的商品數量

Task 2

使用同上資料,找出並印出價格最高的商品名稱

Task 3

建立 DataFrame 加上類別欄 ['上衣','褲子','外套','上衣','褲子'],篩選「褲子」類別後印出價格總和

BackNext Lesson →