pandas操作複習 06 列降序排序

2022-09-20 14:12:09 字數 3589 閱讀 8139

目錄致謝鏈結

已經計算出了總分,那麼接下來肯定要進行排名。好在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)

out

0 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)
out

0 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...