Photo by Taras Shypka on Unsplash
面對現實生活中所蒐集來的各式各樣資料,想要能夠快速的進行初步整理,並且有效觀察其中的內容,資料排序可以說是最常使用的方法之一。
而Pandas套件對於資料排序的功能,也提供了非常好支援,本文就以Kaggle網站的2009-2019年Amazon前50名暢銷書資料集(bestsellers with categories.csv)為例,帶大家來瞭解如何在資料集中應用Pandas套件的排序方法(Method)。重點包含:
- Pandas DataFrame單欄位排序資料
- Pandas DataFrame多欄位排序資料
- Pandas DataFrame多欄位的升降冪排序資料
一、Pandas DataFrame單欄位排序資料
首先,利用Pandas套件的read_csv()方法(Method),讀取下載下來的CSV資料集檔案,如下範例:
import pandas as pd df = pd.read_csv('bestsellers with categories.csv') print(df)
執行結果
這時候,如果想要針對讀者評價(User Rating)來進行由小到大的升冪排序,就可以呼叫Pandas套件的sort_values()方法(Method),並且透過by關鍵字參數,指定所要排序的欄位名稱,如下範例:
import pandas as pd df = pd.read_csv('bestsellers with categories.csv') df.sort_values(by='User Rating') print(df)
執行結果
事實上,Pandas套件的sort_values()方法(Method)會知道要升冪排序,是因為還有一個ascending關鍵字參數,預設為True,所以如果想要進行升冪排序,可以省略ascending關鍵字參數。
相反的,Pandas套件的sort_values()方法(Method)要執行由大到小的降冪排序,就需要設定ascending關鍵字參數為False,如下範例:
import pandas as pd df = pd.read_csv('bestsellers with categories.csv') df.sort_values(by='User Rating', ascending=False) print(df)
執行結果
二、Pandas DataFrame多欄位排序資料
實務上,除了單欄位的排序外,很多時候會使用多欄位來進行排序,讓單欄位中擁有相同值的資料再透過額外的欄位排序,增加資料的識別度。
而Pandas套件的sort_values()方法(Method)也提供了多欄位的排序方式,利用串列(List)來指定多個欄位名稱即可,如下範例:
import pandas as pd df = pd.read_csv('bestsellers with categories.csv') df.sort_values(by=['Genre', 'User Rating']) print(df)
執行結果
以上的範例,就是先依照書籍類型(Genre)排序,再按讀者評價(User Rating)排序,並且都是升冪排序。同樣的,如果想要降冪排序,就需設定ascending關鍵字參數為False,如下範例:
import pandas as pd df = pd.read_csv('bestsellers with categories.csv') df.sort_values(by=['Genre', 'User Rating'], ascending=False) print(df)
執行結果
三、Pandas DataFrame多欄位升降冪排序資料
既然Pandas套件的sort_values()方法(Method)可以多欄位來進行排序,那能不能夠指定各自的升降冪排序呢?
答案是可以的,sort_values()方法(Method)的ascending關鍵字參數同樣可以利用串列(List)的方式,來分別將對應的欄位做升降冪排序,如下範例:
import pandas as pd df = pd.read_csv('bestsellers with categories.csv') df.sort_values(by=['Author', 'Reviews'], ascending=[False, True]).head(25) #取前25筆資料 print(df)
執行結果
四、小結
本文分享了三個使用Pandas套件來排序資料的常見情境,利用sort_values()方法(Method)的by與ascending關鍵字參數,即可對單欄位或多欄位的資料來進行升降冪排序,同時也要特別注意在多欄位排序時,是有順序性的,也就是會按照串列(List)中的欄位名稱先後順序來排序。希望本文的實作能夠幫助大家學會使用Pandas套件的排序資料方法(Method)。
如果您喜歡我的文章,別忘了在下面訂閱本網站,以及幫我按五下Like(使用Google或Facebook帳號免費註冊),支持我創作教學文章,回饋由LikeCoin基金會出資,完全不會花到錢,感謝大家。
有想要看的教學內容嗎?歡迎利用以下的Google表單讓我知道,將有機會成為教學文章,分享給大家😊
Python網頁爬蟲推薦課程
Pandas資料分析教學
- [Pandas教學]有效利用Pandas套件篩選資料的應用技巧
- [Pandas教學]善用Pandas套件的Groupby與Aggregate方法提升資料解讀效率
- [Pandas教學]使用Pandas套件實作資料清理的必備觀念(上)
- [Pandas教學]使用Pandas套件實作資料清理的必備觀念(下)
- Visual Studio Code漂亮印出Pandas DataFrame資料的實用方法
- [Pandas教學]資料視覺化必懂的Pandas套件繪製Matplotlib分析圖表實戰
- [Pandas教學]5個實用的Pandas讀取Excel檔案資料技巧
- 解析Python網頁爬蟲如何有效整合Pandas套件提升資料處理效率
- [Pandas教學]掌握Pandas DataFrame讀取網頁表格的實作技巧
- [Pandas教學]資料分析必懂的Pandas DataFrame處理雙維度資料方法
- [Pandas教學]資料分析必懂的Pandas Series處理單維度資料方法
留言
張貼留言