iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
自我挑戰組

Pandas|資料前處理工具 系列 第 11

Day 11|資料快速排序操作

  • 分享至 

  • xImage
  •  

  完成資料篩選後,我們可以針對特定欄位進行排序,幫助我們快速整理與觀察,以下將透過案例替大家介紹兩種資料排序的方式,內容包含:

  1. 根據數值(value)排序
  2. 根據索引值(index)排序

■ 案例

  1. 線上課程資訊
    https://ithelp.ithome.com.tw/upload/images/20230926/20162238Wy45WY2WDe.jpg

  2. 程式碼

import pandas as pd
data = {'title':['Simple, Healthy Fall Recipes','Learn to Program with C++',
                 'CSS Fundamentals','HTML Workshop','Planning Your Podcast',
                 'Cake Decorating For Fun '],
		'category':['Lifestyle','Development','Development',
                 'Development','Business','Lifestyle'],
        'price':[20,60,50,20,50,40]}
df = pd.DataFrame(data)

■ 方法|根據數值(value)排序

Pandas 提供 sort_values(by =‘欄位名稱’, ascending = True 或 False)方法排序。

  • 參數 by 決定要排序的欄位,必填!
  • 參數 ascending 預設為True,執行由小到大的升冪排序;False 則執行由大到小的降冪排序
  • 非數值型態的資料,電腦會自動依首位字母的ASCII 編碼排序

1. 單一欄位排序:於參數 by 指定欄位名稱
舉例:將資料依據 price 欄位分別進行升冪和降冪排序

price_asc = df.sort_values(by='price') # 依price升冪排序
price_desc = df.sort_values(by='price',ascending = False) # 依price降冪排序
print(price_asc)
print('---------------------------------------------------')
print(price_desc)

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20230926/20162238RokmvIGjDM.png

2. 多欄位排序:於參數 by 使用列表(list)指定多個欄位名稱
舉例:將資料依據 category 和 price 兩個欄位排序,先排 category 再排 price

multi_sort = df.sort_values(by=['category','price']) 
print(multi_sort)

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20230926/201622384mpIGbyt7i.png

若不同欄位有不同排序的需求時,可於參數 ascending 分別設定。
舉例:依據 category 和 price 兩個欄位排序,先降冪排 category 再升冪排 price

mix_sort = df.sort_values(by=['category','price'],ascending=[False,True]) 
print(mix_sort)

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20230926/20162238sVdTu731JC.png

■ 方法|根據索引值(index)排序

Pandas 提供 sort_index(ascending = True 或 False) 方法排序。
舉例:依 DataFrame 的索引值做升冪、降冪排序

asc = df.sort_index  # 升冪排序df
desc = df.sort_index(ascending=False) #降冪排序df
print(asc)
print('---------------------------------------------------')
print(desc)

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20230926/20162238oDpwUKB2xE.png

■ 結語

善用 sort_values()sort_index() 函數,搭配參數的設定,便能輕鬆完成資料排序!如果有任何不理解、錯誤或其他方法想分享的話,歡迎留言給我!喜歡的話,也歡迎按讚訂閱!

我是 Eva,一位正在努力跨進資料科學領域的女子!我們下一篇文章見!Bye Bye~
【本篇文章將同步更新於個人的 Medium,期待與您的相遇!】


上一篇
Day 10|資料的篩選與過濾
下一篇
Day 12|觀察資料中的缺失值
系列文
Pandas|資料前處理工具 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言