#----------------------------------------------------- #範例16-14:df的查詢(1):查詢,新增查詢後的欄位 #https://pandas.pydata.org/docs/getting_started/intro_tutorials/03_subset_data.html #(1)檔案:學生成績檔(excel) #https://acupun.site/lecture/python/py_example/chp16/score2.xlsx #(2)重點1:查詢4個欄位(name,chi,eng,math) # df2 = df[['name','chi','eng','math']] # 對應sql指令:select name,eng,math from mad3a #(3)重點2:查詢+新增1個欄位(班級) # df = df.assign(myclass = "經管3a") # df.insert(5,"myclass","經管3a") # 對應sql指令:select *,"經管3a" as myclass from mad3a #(4)重點3:查詢+新增1個欄位(總分total): # df = df.assign(mytotal = (df['chi']+df['eng']+df['math'])) # df = df.assign(mytotal = df[['chi','eng','math']].sum(axis='columns')) # 對應sql指令:select *,sum(chi,eng,math) as total from mad3a #(5)重點4:查詢+新增1個欄位(平均avg): # df = df.assign(平均 = (df['chi']+df['eng']+df['math'])/3) # df = df.assign(myavg = df[['chi','eng','math']].avg(axis='columns')) #對應sql指令:select *,avg(chi,eng,math) as 平均 from mad3a #------------------------------ #1.練習1:查詢想要的欄位 #--------------------- #(1)讀取網路檔案:score2.xlsx #import pandas as pd #df = pd.read_excel("https://acupun.site/lecture/python/py_example/chp16/score2.xlsx","mad3a") print() print("1-1.全部的資料=\n") #--------------------- #(2)查詢4個欄位(name,chi,eng,math):df2 = df[['name','chi','eng','math']] #對應sql指令:select name,eng,math from mad3a print() print("1-2.查詢4個欄位(name,chi,eng,math)=\n") #------------------------------ #2.練習2:查詢+新增的欄位 #--------------------- #--------------------- #(1)查詢+新增1個欄位(班級):df = df.assign(myclass = "經管3a") print() #對應sql指令:select *,"經管3a" as myclass from mad3a #注意:若欄位名稱用class,會發生錯誤,因為class是系統內定使用變數名稱,不可以再使用了 print("2-1.查詢+新增1個欄位(班級)=\n") #--------------------- #(2)查詢+新增1個欄位(學校):df.insert(5,"school","北科大") print() #對應sql指令:select *,"北科大" as school from mad3a print("2-2.查詢+新增1個欄位(學校)=\n") #結論:新增欄位有2種方法: #(A) df = df.assign(myclass = "經管3a") #(B) df.insert(5,"school","北科大") #注意:insert的指令直接設定,不需要df = df.... #--------------------- #(3)查詢+新增1個欄位(總分mytotal):df = df.assign(total = (df['chi']+df['eng']+df['math'])) print() #對應sql指令:select *,sum(chi,eng,math) as total from mad3a #(A) 計算總和方法1: #df = df.assign(mytotal = (df['chi']+df['eng']+df['math'])) #(B) 計算總和方法2: #df = df.assign(mytotal = df[['chi','eng','math']].sum(axis='columns')) #mytotal = df[['chi','eng','math']].sum(axis='columns') #mytotal = df[['chi','eng','math']].sum(axis='index') print("2-3.查詢+新增1個欄位(總分mytotal)=\n") #--------------------- #(4)新增1個欄位(平均avg):df = df.assign(平均 = (df['chi']+df['eng']+df['math'])/3) print() #對應sql指令:select *,avg(chi,eng,math) as 平均 from mad3a #(A) 計算平均方法1: #pd.options.display.float_format = '{:,.1f}'.format #df = df.assign(平均 = (df['chi']+df['eng']+df['math'])/3) #(B) 計算平均方法2: #df = df.assign(myavg = df[['chi','eng','math']].avg(axis='columns')) print("2-4.新增1個欄位(平均avg)=\n") #-------------------- #(5)把df,儲存為score1c.xlsx print() #(A).儲存到虛擬專案區(暫存幾天) #df.to_excel("score1c.xlsx") #(A).加入google雲端的目錄(永久保存) #A.先在左邊的『檔案』, #B.點按『掛接雲端硬碟』,顯示『drive』 #import os #os.chdir("/content/drive/MyDrive/Colab Notebooks") #df.to_excel("score1c.xlsx") #查看目錄的檔案名稱 !ls #-------------------------------------------------------------------- #-------------------------------------------------------------------- #範例16-14:df的查詢(1):查詢,新增查詢後的欄位 #https://pandas.pydata.org/docs/getting_started/intro_tutorials/03_subset_data.html #(1)檔案:學生成績檔(excel) #https://acupun.site/lecture/python/py_example/chp16/score2.xlsx #(2)重點1:查詢4個欄位(name,chi,eng,math) # df2 = df[['name','chi','eng','math']] # 對應sql指令:select name,eng,math from mad3a #(3)重點2:查詢+新增1個欄位(班級) # df = df.assign(myclass = "經管3a") # df.insert(5,"myclass","經管3a") # 對應sql指令:select *,"經管3a" as myclass from mad3a #(4)重點3:查詢+新增1個欄位(總分total): # df = df.assign(mytotal = (df['chi']+df['eng']+df['math'])) # df = df.assign(mytotal = df[['chi','eng','math']].sum(axis='columns')) # 對應sql指令:select *,sum(chi,eng,math) as total from mad3a #(5)重點4:查詢+新增1個欄位(平均avg): # df = df.assign(平均 = (df['chi']+df['eng']+df['math'])/3) # df = df.assign(myavg = df[['chi','eng','math']].avg(axis='columns')) #對應sql指令:select *,avg(chi,eng,math) as 平均 from mad3a #------------------------------ #1.練習1:查詢想要的欄位 #--------------------- #(1)讀取網路檔案:score2.xlsx 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) #--------------------- #(2)查詢4個欄位(name,chi,eng,math):df2 = df[['name','chi','eng','math']] #對應sql指令:select name,eng,math from mad3a print() df2 = df[['name','chi','eng','math']] print("1-2.查詢4個欄位(name,chi,eng,math)=\n", df2) #------------------------------ #2.練習2:查詢+新增的欄位 #--------------------- #--------------------- #(1)查詢+新增1個欄位(班級):df = df.assign(myclass = "經管3a") print() #對應sql指令:select *,"經管3a" as myclass from mad3a df = df.assign(myclass = "經管3a") #注意:若欄位名稱用class,會發生錯誤,因為class是系統內定使用變數名稱,不可以再使用了 print("2-1.查詢+新增1個欄位(班級)=\n", df) #--------------------- #(2)查詢+新增1個欄位(學校):df.insert(5,"school","北科大") print() #對應sql指令:select *,"北科大" as school from mad3a df.insert(5,"school","北科大") print("2-2.查詢+新增1個欄位(學校)=\n", df) #結論:新增欄位有2種方法: #(A) df = df.assign(myclass = "經管3a") #(B) df.insert(5,"school","北科大") #注意:insert的指令直接設定,不需要df = df.... #--------------------- #(3)查詢+新增1個欄位(總分mytotal):df = df.assign(total = (df['chi']+df['eng']+df['math'])) print() #對應sql指令:select *,sum(chi,eng,math) as total from mad3a #(A) 計算總和方法1: #df = df.assign(mytotal = (df['chi']+df['eng']+df['math'])) #(B) 計算總和方法2: df = df.assign(mytotal = df[['chi','eng','math']].sum(axis='columns')) #mytotal = df[['chi','eng','math']].sum(axis='columns') #mytotal = df[['chi','eng','math']].sum(axis='index') print("2-3.查詢+新增1個欄位(總分mytotal)=\n", df) #--------------------- #(4)新增1個欄位(平均avg):df = df.assign(平均 = (df['chi']+df['eng']+df['math'])/3) print() #對應sql指令:select *,avg(chi,eng,math) as 平均 from mad3a #(A) 計算平均方法1: pd.options.display.float_format = '{:,.1f}'.format df = df.assign(平均 = (df['chi']+df['eng']+df['math'])/3) #(B) 計算平均方法2: #df = df.assign(myavg = df[['chi','eng','math']].avg(axis='columns')) print("2-4.新增1個欄位(平均avg)=\n", df) #-------------------- #(5)把df,儲存為score1c.xlsx print() #(A).儲存到虛擬專案區(暫存幾天) #df.to_excel("score1c.xlsx") #(A).加入google雲端的目錄(永久保存) #A.先在左邊的『檔案』, #B.點按『掛接雲端硬碟』,顯示『drive』 #import os #os.chdir("/content/drive/MyDrive/Colab Notebooks") #df.to_excel("score1c.xlsx") #查看目錄的檔案名稱 !ls #--------------------------------------------------------------------