目錄致謝鏈結
已經計算出了總分,那麼接下來肯定要進行排名。好在pandas中對dataframe的排序也有現成的方法,何老師準備使用rank()方法來進行排序。
倘若無資料,可拷貝以下資料到乙個xlsx的檔案中使用
學號姓名
班級語文
數學英語
**美術
體育sum
0a01
饒秀穎1班
35.0
45.0
55.0
95.0
95.0
95.0
240.0
1a02
于俊遠1班
38.0
53.0
46.0
97.0
98.0
95.0
245.6
2a03
王五1班
54.0
46.0
38.0
97.0
99.0
97.0
247.1
3a08
冉頗3班
34.0
54.0
60.0
96.0
98.0
99.0
248.3
4a09
夫余嵐裳
3班43.0
57.0
67.0
98.0
95.0
94.0
252.5
5a10
薛菁3班
55.0
60.0
65.0
96.0
93.0
96.0
252.6
包括匯入模組、指定檔案、獲取資料等步驟
import pandas as pd
import numpy as np
import pathlib
file_path = pathlib.path("/content/drive/mydrive/notebooks_data/score.xlsx")
data1 = pd.read_excel(file_path)
我們先直接對整個dataframe
data1.rank()
out學號姓名
班級語文
數學英語
**美術
體育sum
01.0
6.02.0
2.01.0
3.01.0
2.52.5
1.01
2.01.0
2.03.0
3.02.0
4.54.5
2.52.0
23.0
4.02.0
5.02.0
1.04.5
6.05.0
3.03
4.02.0
5.01.0
4.04.0
2.54.5
6.04.0
45.0
3.05.0
4.05.0
6.06.0
2.51.0
5.05
6.05.0
5.06.0
6.05.0
2.51.0
4.06.0
會發現:學號、姓名、班級這三列竟然也被排名了,以一種不為人知的方法(只是我懶得去搜)。但我們實際上只需要對數字進行排序,如果再要求嚴格一點,我們只想對sum這一列的總分分數進行排名。
# 我們嘗試選擇dataframe中的一列
data1["sum"].rank(numeric_only=true)
out0 1.0
1 2.0
2 3.0
3 4.0
4 5.0
5 6.0
name: sum, dtype: float64
我們發現會輸出乙個針對指定列的乙個排序的series。但是實際上我們發現有一點不滿意的地方:預設的排序是公升序!也就是說,分數最低的反而是no.1,這與我們日常使用的降序是不一樣的!
data1["sum"].rank(numeric_only=true, ascending=false)
out0 6.0
1 5.0
2 4.0
3 3.0
4 2.0
5 1.0
name: sum, dtype: float64
# 新增資料
data1["rank"] = data1["sum"].rank(numeric_only=true, ascending=false, )
data1
out學號姓名
班級語文
數學英語
**美術
體育sum
rank
0a01
饒秀穎1班
35.0
45.0
55.0
95.0
95.0
95.0
240.0
6.01
a02于俊遠
1班38.0
53.0
46.0
97.0
98.0
95.0
245.6
5.02
a03王五
1班54.0
46.0
38.0
97.0
99.0
97.0
247.1
4.03
a08冉頗
3班34.0
54.0
60.0
96.0
98.0
99.0
248.3
3.04
a09夫余嵐裳
3班43.0
57.0
67.0
98.0
95.0
94.0
252.5
2.05
a10薛菁
3班55.0
60.0
65.0
96.0
93.0
96.0
252.6
1.0
data1.to_excel("/content/drive/mydrive/notebooks_data/score.xlsx", index=false)
pandas的排序、排名方法 pandas 變數列的基本操作
import pandas as pd df1 pd.read csv 123.csv encoding utf 8 print df1 directly show dataframe 直接檢視 print df1.info dataframe s basic information 資訊描述 pr...
pandas 刪除列和行的基本操作
用法 dataframe.drop labels none,axis 0,index none,columns none,inplace false labels 就是要刪除的行列的名字,用列表給定 axis 預設為0,指刪除行,因此刪除columns時要指定axis 1 index 直接指定要刪除...
python之路 複習(結合前面操作寫出實列)
編譯型 一次性將全部的 編譯成二進位制檔案。例如 c c 優點 執行效率高 缺點 開發速度慢,不能跨平台 優點 開發速度快,效率高,可以跨平台 缺點 執行效率低 python 2x 原始碼,重複率高,不規範,而且python 崇尚的是簡單優美清晰,所以鬼叔建立了python 3,規範化。python...