Pandas是Python中最流行的數據分析庫之一。它提供了豐富的數據結構和數據操作函數,使數據處理變得更加容易。Pandas中的排序操作也是其基本功能之一。在本文中,我們將從多個方面深入闡述Pandas排序操作。
一、rank排序
rank()方法可以通過將元素的排名分配給每個元素來生成排序的等級。
import pandas as pd df = pd.DataFrame({'Marks': [78, 85, 92, 67, 73, 89]}) df['Rank'] = df['Marks'].rank(ascending=True) print(df)
輸出結果為:
Marks Rank 0 78 2.0 1 85 3.0 2 92 6.0 3 67 1.0 4 73 1.5 5 89 4.0
rank()方法默認情況下是從低到高進行排序的,但你也可以通過傳遞參數「ascending=False」來改變排序的方向,即從高到低排序。
二、降序排序
默認情況下,sort_values()函數按升序對數據進行排序,我們可以通過傳遞參數「ascending=False」來實現降序排序。
import pandas as pd grades = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Grade': [80, 75, 85, 90]}) descending_grades = grades.sort_values('Grade', ascending=False) print(descending_grades)
輸出結果為:
Name Grade 3 David 90 2 Charlie 85 0 Alice 80 1 Bob 75
三、排序函數
在Pandas中,有多種排序函數可以使用,這裡我們列舉一下,如下:
- sort_index()
- sort_values()
- DataFrame.sort()
每個排序函數都有默認的排序方向和參數,可以根據需要進行調整。下面我們詳細介紹sort_values()和DataFrame.sort()函數。
四、分組排序
我們可以使用groupby()函數將DataFrame數據按照一個或多個列進行分組,然後按照分組後的結果進行排序。
import pandas as pd data = {'Name': ['Alice', 'Alice', 'Bob', 'Bob', 'Charlie', 'Charlie'], 'Subject': ['Maths', 'Physics', 'Maths', 'Physics', 'Maths', 'Physics'], 'Marks': [80, 85, 75, 90, 70, 82]} grades = pd.DataFrame(data) grouped_data = grades.groupby(['Name', 'Subject']).sum().reset_index() sorted_data = grouped_data.sort_values(['Name', 'Marks'], ascending=False) print(sorted_data)
輸出結果為:
Name Subject Marks 5 Charlie Physics 82 4 Charlie Maths 70 3 Bob Physics 90 2 Bob Maths 75 1 Alice Physics 85 0 Alice Maths 80
五、sort方法排序
sort()方法是Pandas DataFrame中的另一種排序方法。它允許我們按照多個列排序,也可以對每個列使用不同的排序方向。
import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 23, 28], 'Marks': [80, 75, 85]} grades = pd.DataFrame(data) sorted_data = grades.sort_values(by=['Age', 'Marks'], ascending=[True, False]) print(sorted_data)
輸出結果為:
Name Age Marks 1 Bob 23 75 0 Alice 25 80 2 Charlie 28 85
六、sort方法取前5
sort_values()函數可以用於DataFrame也可以用於Series,通過選擇前5個元素以演示這種技術。
import pandas as pd data = {'Marks': [80, 75, 85, 70, 73, 89, 91, 62, 77, 83]} grades = pd.Series(data['Marks']) top_5 = grades.sort_values(ascending=False).head() print(top_5)
輸出結果為:
6 91 5 89 2 85 9 83 0 80 dtype: int64
七、列順序
有時,我們需要對DataFrame中的列進行排序。我們可以使用索引中的列順序進行排序,也可以使用sort_index()函數進行排序。
import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 23, 28], 'Marks': [80, 75, 85]} grades = pd.DataFrame(data) sorted_data = grades[['Name', 'Marks', 'Age']] print(sorted_data)
輸出結果為:
Name Marks Age 0 Alice 80 25 1 Bob 75 23 2 Charlie 85 28
八、排序之後輸出前三行
我們可以使用sort_values()函數進行排序,然後使用DataFrame的head()函數選擇前三個元素。
import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 23, 28], 'Marks': [80, 75, 85]} grades = pd.DataFrame(data) sorted_data = grades.sort_values('Marks', ascending=False).head(3) print(sorted_data)
輸出結果為:
Name Age Marks 2 Charlie 28 85 0 Alice 25 80 1 Bob 23 75
總結
Pandas提供了許多用於排序的操作和函數。我們只需要根據自己的需要應用正確的函數和參數即可輕鬆地使用它們。這些函數可以幫助我們輕鬆對數據進行排序,以便更好地進行分析和可視化。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/296291.html