#----------------------------------------------------- #範例16-18:pandas與numpy的axis軸:計算平均mean,總和sum,最大max,最小min #http://changtw-blog.logdown.com/posts/895468-python-numpy-axis-concept-organize-notes #(1)檔案:學生成績檔:score2.xlsx(mad3a資料表) #https://acupun.site/lecture/python/py_example/chp16/score2.xlsx #(2)重點1:計算平均分數 = mean() # 計算1維Series的平均分:df['math].mean() # 計算2維DataFrame,每個欄位columns的平均分:df.mean(axis=0) # 計算2維DataFrame,每個列index的平均分:df.mean(axis=1) #(3)重點2:axis=0,axis=1是什麼意思 # numpy和pandas中 axis(軸)的概念: # (A)df.mean(axis=1),表示依照row(index),計算每一水平列(每個學生)的平均 # 圖示:http://user-image.logdown.io/user/18813/blog/18326/post/895468/NdQzZsNgR9un4TIruSVe_6.jpg # (B)df.mean(axis=0),表示依照欄位(colunmns),計算每一垂直欄位(每個科目)的平均 # 圖示:http://user-image.logdown.io/user/18813/blog/18326/post/895468/hdxcm2OEQGCxXpEgBn0V_9.jpg #(4)重點3: # 大部分的pandas函數,都支持1維度的series,與2維的DataFrame的計算 # 少數的pandas函數,例如:關鍵字查詢(.str.contains())只支援1維度的series,不支持2維的DataFrame的計算 # 2維的DataFrame的函數計算,可以指定axis=0 計算垂直欄位函數,或是指定axis=1,計算水平列的函數 #------------------------------ #1.練習1:計算數學科平均分數 #------------------------------ #(1)讀取網路檔案:score2.xlsx(mad3a資料表) #import pandas as pd #df = pd.read_excel("https://acupun.site/lecture/python/py_example/chp16/score2.xlsx","mad3a") print() print("1-1.全部的資料=\n") #--------------------- #1.練習1:計算數學科平均分數:f"{df['math'].mean():.1f}" print() print("1-2.數學科平均分數=\n") #------------------------------ #2.練習2:計算john平均分數:df.loc['john'][2:5].mean() #------------------------------ print() #df.set_index('name', inplace=True) print("2-1.john的數學科平均分數=\n") #------------------------------ #3.練習3:計算各科平均分數:df2.mean(axis=0) #------------------------------ print() #df2 = df[["chi", "eng", "math"]] print("3-1.計算各科平均分數=\n") #------------------------------ #4.練習4:計算每個人的平均分數:df2.mean(axis=1) #------------------------------ print() #df2 = df[["chi", "eng", "math"]] print("4-1.計算每個人的平均分數=\n") #------------------------------ #5.練習5:各科目最高分: df2.max(axis=0) #------------------------------ print() #df2 = df[['chi','eng','math']] print("5-1.各科目最高分=\n") #------------------------------ #6.練習6:每個學生的最低分:df2.min(axis=1) #------------------------------ print() #df2 = df[['chi','eng','math']] print("5-1.每個學生的最低分=\n") #-------------------------------------------------------------------- #-------------------------------------------------------------------- #範例16-18:pandas與numpy的axis軸:計算平均mean,總和sum,最大max,最小min #http://changtw-blog.logdown.com/posts/895468-python-numpy-axis-concept-organize-notes #(1)檔案:學生成績檔:score2.xlsx(mad3a資料表) #https://acupun.site/lecture/python/py_example/chp16/score2.xlsx #(2)重點1:計算平均分數 = mean() # 計算1維Series的平均分:df['math].mean() # 計算2維DataFrame,每個欄位columns的平均分:df.mean(axis=0) # 計算2維DataFrame,每個列index的平均分:df.mean(axis=1) #(3)重點2:axis=0,axis=1是什麼意思 # numpy和pandas中 axis(軸)的概念: # (A)df.mean(axis=1),表示依照row(index),計算每一水平列(每個學生)的平均 # 圖示:http://user-image.logdown.io/user/18813/blog/18326/post/895468/NdQzZsNgR9un4TIruSVe_6.jpg # (B)df.mean(axis=0),表示依照欄位(colunmns),計算每一垂直欄位(每個科目)的平均 # 圖示:http://user-image.logdown.io/user/18813/blog/18326/post/895468/hdxcm2OEQGCxXpEgBn0V_9.jpg #(4)重點3: # 大部分的pandas函數,都支持1維度的series,與2維的DataFrame的計算 # 少數的pandas函數,例如:關鍵字查詢(.str.contains())只支援1維度的series,不支持2維的DataFrame的計算 # 2維的DataFrame的函數計算,可以指定axis=0 計算垂直欄位函數,或是指定axis=1,計算水平列的函數 #------------------------------ #1.練習1:計算數學科平均分數 #------------------------------ #(1)讀取網路檔案:score2.xlsx(mad3a資料表) import pandas as pd df = pd.read_excel("https://acupun.site/lecture/python/py_example/chp16/score2.xlsx","mad3a") print() print("1-1.全部的資料=\n", df) #--------------------- print() print("1-2.數學科平均分數=\n", f"{df['math'].mean():.1f}" ) #------------------------------ #2.練習2:計算john平均分數 #------------------------------ print() df.set_index('name', inplace=True) print("2-1.john的數學科平均分數=\n", df.loc['john'][2:5].mean() ) #------------------------------ #3.練習3:計算各科平均分數 #------------------------------ print() df2 = df[["chi", "eng", "math"]] print("3-1.計算各科平均分數=\n", df2.mean(axis=0)) #------------------------------ #4.練習4:計算每個人的平均分數 #------------------------------ print() df2 = df[["chi", "eng", "math"]] print("4-1.計算每個人的平均分數=\n", df2.mean(axis=1)) #------------------------------ #5.練習5:各科目最高分 #------------------------------ print() df2 = df[['chi','eng','math']] print("5-1.各科目最高分=\n", df2.max(axis=0)) #------------------------------ #6.練習6:每個學生的最低分 #------------------------------ print() df2 = df[['chi','eng','math']] print("5-1.每個學生的最低分=\n", df2.min(axis=1)) #--------------------------------------------------------------------