來到了鐵人賽的最後一天,
昨天學會了用index來排序,
而今天要來講講Pandas使用sort_values排序,
也就是依照資料的值來排序。
首先,先建立一個DataFrame
結構的資料,
或是有匯入的資料轉成DataFrame結構也行。
這邊為了方便對照,先印出完整的資料來看。
studentsData = {
'studentId': ['001', '002', '003'],
'Name': ['A', 'B', 'C'],
'Height': [175, 153, 164],
'Weight': [80, 45, 75],
'City': ['New York', 'Los Angeles', 'Chicago']
}
students = pd.DataFrame(studentsData)
print(students)
印出資料如下。
studentId Name Height Weight City
0 001 A 175 80 New York
1 002 B 153 45 Los Angeles
2 003 C 164 75 Chicago
概念上values排序與index排序都是相同的
當資料values已經可以辨識順序時,
可以使用sort_values語法自動排序,
在資料後加上.sort_values([欄位名稱])
,
其中ascending項是可被省略的。
稍微複習一下,與昨日的相同
True代表了遞增(由小到大)(預設),
False代表了遞減(由大到小);
使用方式如下。
print(students.sort_values(["Height"])) # ascending預設為True
# print(students.sort_values(["Height"], ascending=True)) # 與上列相同
印出資料如下,
可以看到欄位Height依照順序遞增(由小到大)排列,
而資料順序也隨之移動。
studentId Name Height Weight City
1 002 B 153 45 Los Angeles
2 003 C 164 75 Chicago
0 001 A 175 80 New York
如同前面所述,
這裡加上ascending=False,
使排序遞減(由大到小),
使用方式如下。
print(students.sort_values(["Height"], ascending=False))
印出資料如下,
可以看到欄位Height依照順序序遞減(由大到小)排列,
而資料順序也隨之移動。
studentId Name Height Weight City
0 001 A 175 80 New York
2 003 C 164 75 Chicago
1 002 B 153 45 Los Angeles
這兩天學會了排序的兩種方式,
index與values,
這裡要特別注意的是values可以依照多個欄位做排序,
若是要排序多的欄位時,
在資料間用,
隔開即可。
最後,
希望這系列的分享有幫助到想學習Pandas的所有人,
雖然都是很粗淺的知識,
但只要有基本的了解,
我相信在後續要再精進肯定很快就能步上軌道。
我今年的鐵人賽就此落幕,
期望大家都能在這領域上一同進步、共同成長、開心學習,
期待明年再相會。