版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
創(chuàng)建學(xué)生成績表
問題描述創(chuàng)建一個學(xué)生成績表,學(xué)科有“shuxue”、“yuwen”、“yingyu”、“shengwu”,具體內(nèi)容見表1.1.1。輸出結(jié)果shuxueyuwenyingyushengwubanji1XiaoMing95998960HanHan77566858banji2GeYou92882998FengGong22547362表1.1.1學(xué)生成績表題前思考問題描述問題解答學(xué)生成績表有幾行幾列?四行四列
表的列名和行名分別是什么,數(shù)據(jù)有哪些?列名:'shuxue','yuwen','yingyu','shengwu'
行名:'banji1','banji1','banji2','banji2’'XiaoMing','HanHan','GeYou','FengGong'怎樣創(chuàng)建學(xué)生成績表?調(diào)用pd.DataFrame()創(chuàng)建
importpandasaspd
d=[
[95,99,89,60],
[77,56,68,58],
[92,88,29,98],
[22,54,73,62]
]
data=pd.DataFrame(d,columns=['shuxue','yuwen','yingyu','shengwu'],index=[['banji1','banji1','banji2','banji2'],['XiaoMing','HanHan','GeYou','FengGong']])
print(data)程序代碼將pandas模塊作為pd導(dǎo)入,因為pandas是python的的第三方庫,所以使用前需要用命令pipinstallpandas進行安裝。importpandasaspd
d=[
[95,99,89,60],
[77,56,68,58],
[92,88,29,98],
[22,54,73,62]
]
data=pd.DataFrame(d,columns=['shuxue','yuwen','yingyu','shengwu'],index=[['banji1','banji1','banji2','banji2'],['XiaoMing','HanHan','GeYou','FengGong']])
print(data)程序代碼創(chuàng)建一個列表存放各科成績。列表中的每一項又是一個列表,代表了一名學(xué)生各學(xué)科的成績。importpandasaspd
d=[
[95,99,89,60],
[77,56,68,58],
[92,88,29,98],
[22,54,73,62]
]
data=pd.DataFrame(d,columns=['shuxue','yuwen','yingyu','shengwu'],index=[['banji1','banji1','banji2','banji2'],['XiaoMing','HanHan','GeYou','FengGong']])
print(data)程序代碼調(diào)用pd.DataFrame()創(chuàng)建數(shù)據(jù)框?qū)ο?。第一個參數(shù)d表示數(shù)據(jù)框數(shù)據(jù)。關(guān)鍵字參數(shù)columns用于指定列索引,即各列的名稱,這個參數(shù)要求傳入一個列表,且列表長度與每一行的數(shù)據(jù)個數(shù)相同。關(guān)鍵字參數(shù)index用于指定行索引,即每行的名稱,因為表中每一行有兩個名稱,所以是一個兩級索引,傳入的列表也是一個二維列表,每一行表示一個級別的索引,不管哪一級索引,其數(shù)量都與數(shù)據(jù)框的行數(shù)相同。任務(wù)小結(jié)1.創(chuàng)建列表2.調(diào)用pd.DataFrame(data,columns=,index=)創(chuàng)建數(shù)據(jù)框一展身手創(chuàng)建一個商品價目表,如表1.1.3所示:表1.1.3商品價目表名稱原價折扣價數(shù)量可愛多5.04.08奶茶10.08.05巧克力棒9.07.22薯片7.05.53制作團隊制作:徐玲重慶市九龍坡職業(yè)教育中心統(tǒng)計各學(xué)科的得分信息主講人:徐玲重慶市九龍坡職業(yè)教育中心問題描述讀入excel文件“2019級電商1班學(xué)生成績表.xlsx",數(shù)據(jù)見表1.1.4,在“2019級電商1班學(xué)生成績表”中,完成如下任務(wù)操作:1.修改龔林的名字為龔琳;2.將請假的考試科目記0分;3.求出各個同學(xué)的總分,并按照總分從高到低排序;4.在每列的最后分別求出各個科目的平均分、最高分、最低分。班級姓名語文數(shù)學(xué)英語C語言VF表格處理總分2019級電商1班(計算機應(yīng)用高職)(秋)凌尚坤71請假請假899292NaN2019級電商1班(計算機應(yīng)用高職)(秋)巫凌英638683919196NaN2019級電商1班(計算機應(yīng)用高職)(秋)賴程678170969996NaN2019級電商1班(計算機應(yīng)用高職)(秋)龔林
678090938592NaN………………………2019級電商1班(計算機應(yīng)用高職)(秋)辛志鵬723053567992NaN2019級電商1班(計算機應(yīng)用高職)(秋)鐘福建501061376375NaN2019級電商1班(計算機應(yīng)用高職)(秋)于釗穎244743465574NaN問題描述表1.1.42019級電商1班學(xué)生成績表輸出結(jié)果表1.1.52019級電商1班學(xué)生成績表班級姓名語文數(shù)學(xué)英語C語言VF表格處理總分2019級電商1班(計算機應(yīng)用高職)(秋)巫凌英63.0086.0083.0091.0091.0096.00510.002019級電商1班(計算機應(yīng)用高職)(秋)賴程67.0081.0070.0096.0099.0096.00509.002019級電商1班(計算機應(yīng)用高職)(秋)龔琳67.0080.0090.0093.0085.0092.00507.00………………………2019級電商1班(計算機應(yīng)用高職)(秋)牟平0.000.000.000.000.000.000.00
平均分59.8564.4667.3776.2676.3792.37436.67
最高分78.0096.0090.0097.0099.00100.00510.00
最低分0.000.000.000.000.000.000.00題前思考問題描述問題解答怎樣讀入Excel中的數(shù)據(jù)使用pd.read_excel(r“文件保存路徑”)將Excel工作表中的數(shù)據(jù)讀入到DataFrame
。怎樣查找、修改數(shù)據(jù)?用iloc查詢數(shù)據(jù),用replace替換數(shù)據(jù)
怎樣計算總分、平均分、最高分、最低分以及排序?用numpy.sum()、numpy.mean()、numpy.max()和numpy.min()分別計算總分、平均分、最高分和最低分,使用sort_values對數(shù)據(jù)進行排序。
importpandasaspdimportnumpyasnp
data=pd.read_excel(r"D:\pydata\項目一\2019級電商1班學(xué)生成績表.xlsx")
data.iloc[3,1]="龔琳"
data.replace("請假",0,inplace=True)
data["總分"]=data.iloc[:,2:].apply(np.sum,axis=1)
data.sort_values(by="總分",ascending=False,inplace=True)
data=data.append(round(data.loc[:,"語文":"總分"].apply([np.mean,np.max,np.min],axis=0),2),ignore_index=True)
data.iloc[-3:,1]=["平均分","最高分","最低分"]
data.iloc[-3:,:1]=""⑨print(data)
程序代碼將numpy模塊以np為別名導(dǎo)入,因為numpy是python的第三方庫,所以使用前需要用命令pipinstallnumpy進行安裝。importpandasaspdimportnumpyasnp
data=pd.read_excel(r"D:\pydata\項目一\2019級電商1班學(xué)生成績表.xlsx")
data.iloc[3,1]="龔琳"
data.replace("請假",0,inplace=True)
data["總分"]=data.iloc[:,2:].apply(np.sum,axis=1)
data.sort_values(by="總分",ascending=False,inplace=True)
data=data.append(round(data.loc[:,"語文":"總分"].apply([np.mean,np.max,np.min],axis=0),2),ignore_index=True)
data.iloc[-3:,1]=["平均分","最高分","最低分"]
data.iloc[-3:,:1]=""⑨print(data)
程序代碼調(diào)用pd.read_excel()函數(shù)讀入Excel文件"2019級電商1班學(xué)生成績表.xlsx"中的數(shù)據(jù),函數(shù)執(zhí)行后會返回包含excel文件數(shù)據(jù)的數(shù)據(jù)框,賦值給變量data。pd.read_excel()函數(shù)會使用第三方模塊openpyxl,所以需要提前使用命令pipinstallopenpyxl安裝該模塊。importpandasaspdimportnumpyasnp
data=pd.read_excel(r"D:\pydata\項目一\2019級電商1班學(xué)生成績表.xlsx")
data.iloc[3,1]="龔琳"
data.replace("請假",0,inplace=True)
data["總分"]=data.iloc[:,2:].apply(np.sum,axis=1)
data.sort_values(by="總分",ascending=False,inplace=True)
data=data.append(round(data.loc[:,"語文":"總分"].apply([np.mean,np.max,np.min],axis=0),2),ignore_index=True)
data.iloc[-3:,1]=["平均分","最高分","最低分"]
data.iloc[-3:,:1]=""⑨print(data)
程序代碼使用iloc屬性定位第4行第2列的數(shù)據(jù),并將其修改為“龔琳”。iloc使用下標定位數(shù)據(jù),方括號中的值必須為整數(shù)。iloc[3,1]中第一個下標表示行下標,第二個下標表示列下標,都是從0開始計數(shù),所以行下標3表示第4行,列下標1表示第2列。importpandasaspdimportnumpyasnp
data=pd.read_excel(r"D:\pydata\項目一\2019級電商1班學(xué)生成績表.xlsx")
data.iloc[3,1]="龔琳"
data.replace("請假",0,inplace=True)
data["總分"]=data.iloc[:,2:].apply(np.sum,axis=1)
data.sort_values(by="總分",ascending=False,inplace=True)
data=data.append(round(data.loc[:,"語文":"總分"].apply([np.mean,np.max,np.min],axis=0),2),ignore_index=True)
data.iloc[-3:,1]=["平均分","最高分","最低分"]
data.iloc[-3:,:1]=""⑨print(data)
程序代碼使用replace函數(shù)將數(shù)據(jù)框中的值“請假”替換為0,inplace表示是否在原數(shù)據(jù)上修改,默認為False,表示不修改原數(shù)據(jù),設(shè)置為True則會修改原數(shù)據(jù)。importpandasaspdimportnumpyasnp
data=pd.read_excel(r"D:\pydata\項目一\2019級電商1班學(xué)生成績表.xlsx")
data.iloc[3,1]="龔琳"
data.replace("請假",0,inplace=True)
data["總分"]=data.iloc[:,2:].apply(np.sum,axis=1)
data.sort_values(by="總分",ascending=False,inplace=True)
data=data.append(round(data.loc[:,"語文":"總分"].apply([np.mean,np.max,np.min],axis=0),2),ignore_index=True)
data.iloc[-3:,1]=["平均分","最高分","最低分"]
data.iloc[-3:,:1]=""⑨print(data)
程序代碼使用replace函數(shù)將數(shù)據(jù)框中的值“請假”替換為0,inplace表示是否在原數(shù)據(jù)上修改,默認為False,表示不修改原數(shù)據(jù),設(shè)置為True則會修改原數(shù)據(jù)。班級姓名語文數(shù)學(xué)英語C語言VF表格處理總分2019級電商1班(計算機應(yīng)用高職)(秋)凌尚坤7100899292NaN2019級電商1班(計算機應(yīng)用高職)(秋)巫凌英638683919196NaN2019級電商1班(計算機應(yīng)用高職)(秋)賴程678170969996NaN2019級電商1班(計算機應(yīng)用高職)(秋)龔林
678090938592NaN………………………2019級電商1班(計算機應(yīng)用高職)(秋)辛志鵬723053567992NaN2019級電商1班(計算機應(yīng)用高職)(秋)鐘福建501061376375NaN2019級電商1班(計算機應(yīng)用高職)(秋)于釗穎244743465574NaNimportpandasaspdimportnumpyasnp
data=pd.read_excel(r"D:\pydata\項目一\2019級電商1班學(xué)生成績表.xlsx")
data.iloc[3,1]="龔琳"
data.replace("請假",0,inplace=True)
data["總分"]=data.iloc[:,2:].apply(np.sum,axis=1)
data.sort_values(by="總分",ascending=False,inplace=True)
data=data.append(round(data.loc[:,"語文":"總分"].apply([np.mean,np.max,np.min],axis=0),2),ignore_index=True)
data.iloc[-3:,1]=["平均分","最高分","最低分"]
data.iloc[-3:,:1]=""⑨print(data)
程序代碼計算每個學(xué)生各學(xué)科的總分賦值給“總分”列。data.iloc[:,2:]選擇所有行(行切片”:”表示所有行),從第2列開始到最后的所有列(列切片”2:”表示從第2列開始到最后的所有列)。apply(np.sum,axis=1)使用apply()方法對每一行的數(shù)據(jù)求總和,即計算總分。其中第一個參數(shù)np.sum(求總和函數(shù))是要應(yīng)用到數(shù)據(jù)框每一行數(shù)據(jù)的函數(shù),即以每一行的數(shù)據(jù)為參數(shù)求總和。axis表示方向,0表示按列方向求和,1表示按行方向求和。importpandasaspdimportnumpyasnp
data=pd.read_excel(r"D:\pydata\項目一\2019級電商1班學(xué)生成績表.xlsx")
data.iloc[3,1]="龔琳"
data.replace("請假",0,inplace=True)
data["總分"]=data.iloc[:,2:].apply(np.sum,axis=1)
data.sort_values(by="總分",ascending=False,inplace=True)
data=data.append(round(data.loc[:,"語文":"總分"].apply([np.mean,np.max,np.min],axis=0),2),ignore_index=True)
data.iloc[-3:,1]=["平均分","最高分","最低分"]
data.iloc[-3:,:1]=""⑨print(data)
程序代碼計算每個學(xué)生各學(xué)科的總分賦值給“總分”列。data.iloc[:,2:]選擇所有行(行切片”:”表示所有行),從第2列開始到最后的所有列(列切片”2:”表示從第2列開始到最后的所有列)。apply(np.sum,axis=1)使用apply()方法對每一行的數(shù)據(jù)求總和,即計算總分。其中第一個參數(shù)np.sum(求總和函數(shù))是要應(yīng)用到數(shù)據(jù)框每一行數(shù)據(jù)的函數(shù),即以每一行的數(shù)據(jù)為參數(shù)求總和。axis表示方向,0表示按列方向求和,1表示按行方向求和。
班級姓名語文數(shù)學(xué)英語C語言VF表格處理總分2019級電商1班(計算機應(yīng)用高職)(秋)凌尚坤7100899292344.02019級電商1班(計算機應(yīng)用高職)(秋)巫凌英638683919196510.02019級電商1班(計算機應(yīng)用高職)(秋)賴程678170969996509.0………………………2019級電商1班(計算機應(yīng)用高職)(秋)辛志鵬723053567992382.02019級電商1班(計算機應(yīng)用高職)(秋)鐘福建501061376375296.02019級電商1班(計算機應(yīng)用高職)(秋)于釗穎244743465574289.0importpandasaspdimportnumpyasnp
data=pd.read_excel(r"D:\pydata\項目一\2019級電商1班學(xué)生成績表.xlsx")
data.iloc[3,1]="龔琳"
data.replace("請假",0,inplace=True)
data["總分"]=data.iloc[:,2:].apply(np.sum,axis=1)
data.sort_values(by="總分",ascending=False,inplace=True)
data=data.append(round(data.loc[:,"語文":"總分"].apply([np.mean,np.max,np.min],axis=0),2),ignore_index=True)
data.iloc[-3:,1]=["平均分","最高分","最低分"]
data.iloc[-3:,:1]=""⑨print(data)
程序代碼使用sort_values進行排序,by指定按照“總分”排序,ascending默認為True表示升序排序,F(xiàn)alse表示降序排序,inplace設(shè)置為True則表示會修改原數(shù)據(jù)。
班級姓名語文數(shù)學(xué)英語C語言VF表格處理總分2019級電商1班(計算機應(yīng)用高職)(秋)巫凌英638683919196510.02019級電商1班(計算機應(yīng)用高職)(秋)賴程678170969996509.02019級電商1班(計算機應(yīng)用高職)(秋)龔琳678090938592507.0………………………2019級電商1班(計算機應(yīng)用高職)(秋)鐘福建501061376375296.02019級電商1班(計算機應(yīng)用高職)(秋)于釗穎244743465574289.02019級電商1班(計算機應(yīng)用高職)(秋)牟平0000000.0importpandasaspdimportnumpyasnp
data=pd.read_excel(r"D:\pydata\項目一\2019級電商1班學(xué)生成績表.xlsx")
data.iloc[3,1]="龔琳"
data.replace("請假",0,inplace=True)
data["總分"]=data.iloc[:,2:].apply(np.sum,axis=1)
data.sort_values(by="總分",ascending=False,inplace=True)
data=data.append(round(data.loc[:,"語文":"總分"].apply([np.mean,np.max,np.min],axis=0),2),ignore_index=True)
data.iloc[-3:,1]=["平均分","最高分","最低分"]
data.iloc[-3:,:1]=""⑨print(data)
程序代碼計算各學(xué)科的平均分、最高分和最低分并添加到數(shù)據(jù)框的末尾。data.loc[:,"語文":"總分"]使用loc屬性選擇“語文”到“總分”之間的所有列。apply([np.mean,np.max,np.min],axis=0)表示對每一列數(shù)據(jù)應(yīng)用函數(shù)進行統(tǒng)計。關(guān)鍵字參數(shù)axis=0表示用每一列數(shù)據(jù)作為參數(shù)調(diào)用函數(shù)。每一列依次應(yīng)用np.mean()、np.max()和np.min()求出平均分、最高分和最低分。round(apply([np.mean,np.max,np.min],axis=0),2)表示對apply([np.mean,np.max,np.min],axis=0)求出的數(shù)據(jù)框中的每一個值四舍五入保留兩位小數(shù)。ignore_index表示忽略被添加行的索引[‘mean’,‘a(chǎn)max’,‘a(chǎn)min’]。append()方法返回添加行以后的數(shù)據(jù)框,但原數(shù)據(jù)框并不發(fā)生改變。班級姓名語文數(shù)學(xué)英語C語言VF表格處理總分2019級電商1班(計算機應(yīng)用高職)(秋)巫凌英63.0086.0083.0091.0091.0096.00510.002019級電商1班(計算機應(yīng)用高職)(秋)賴程67.0081.0070.0096.0099.0096.00509.002019級電商1班(計算機應(yīng)用高職)(秋)龔琳67.0080.0090.0093.0085.0092.00507.00………………………2019級電商1班(計算機應(yīng)用高職)(秋)牟平0.000.000.000.000.000.000.00NaNNaN59.8564.4667.3776.2676.3792.37436.67NaNNaN78.0096.0090.0097.0099.00100.00510.00NaNNaN0.000.000.000.000.000.000.00importpandasaspdimportnumpyasnp
data=pd.read_excel(r"D:\pydata\項目一\2019級電商1班學(xué)生成績表.xlsx")
data.iloc[3,1]="龔琳"
data.replace("請假",0,inplace=True)
data["總分"]=data.iloc[:,2:].apply(np.sum,axis=1)
data.sort_values(by="總分",ascending=False,inplace=True)
data=data.append(round(data.loc[:,"語文":"總分"].apply([np.mean,np.max,np.min],axis=0),2),ignore_index=True)
data.iloc[-3:,1]=["平均分","最高分","最低分"]
data.iloc[-3:,:1]=""⑨print(data)
程序代碼使用iloc屬性將最后三行第二列的數(shù)據(jù)依次修改為“平均分”、“最高分”和“最低分”。在行切片中-3表示倒數(shù)第3行,“-3:“表示從倒數(shù)第3行開始到最后一行,即最后3行。
班級姓名語文數(shù)學(xué)英語C語言VF表格處理總分2019級電商1班(計算機應(yīng)用高職)(秋)巫凌英63.0086.0083.0091.0091.0096.00510.002019級電商1班(計算機應(yīng)用高職)(秋)賴程67.0081.0070.0096.0099.0096.00509.002019級電商1班(計算機應(yīng)用高職)(秋)龔琳67.0080.0090.0093.0085.0092.00507.00………………………2019級電商1班(計算機應(yīng)用高職)(秋)牟平0.000.000.000.000.000.000.00NaN平均分59.8564.4667.3776.2676.3792.37436.67NaN最高分78.0096.0090.0097.0099.00100.00510.00NaN最低分0.000.000.000.000.000.000.00importpandasaspdimportnumpyasnp
data=pd.read_excel(r"D:\pydata\項目一\2019級電商1班學(xué)生成績表.xlsx")
data.iloc[3,1]="龔琳"
data.replace("請假",0,inplace=True)
data["總分"]=data.iloc[:,2:].apply(np.sum,axis=1)
data.sort_values(by="總分",ascending=False,inplace=True)
data=data.append(round(data.loc[:,"語文":"總分"].apply([np.mean,np.max,np.min],axis=0),2),ignore_index=True)
data.iloc[-3:,1]=["平均分","最高分","最低分"]
data.iloc[-3:,:1]=""⑨print(data)
程序代碼將第一列最后三行的NaN改為空字符串。班級姓名語文數(shù)學(xué)英語C語言VF表格處理總分2019級電商1班(計算機應(yīng)用高職)(秋)巫凌英63.0086.0083.0091.0091.0096.00510.002019級電商1班(計算機應(yīng)用高職)(秋)賴程67.0081.0070.0096.0099.0096.00509.002019級電商1班(計算機應(yīng)用高職)(秋)龔琳67.0080.0090.0093.0085.0092.00507.00………………………2019級電商1班(計算機應(yīng)用高職)(秋)牟平0.000.000.000.000.000.000.00
平均分59.8564.4667.3776.2676.3792.37436.67
最高分78.0096.0090.0097.0099.00100.00510.00
最低分0.000.000.000.000.000.000.00任務(wù)小結(jié)pandas中處理數(shù)據(jù)框常用方法方法描述loc[索引標簽表示的行切片,索引標簽表示的列切片]loc是pandas中用來查找、選擇數(shù)據(jù)的屬性,loc使用行列索引標簽表示的行列切片來定位數(shù)據(jù)。iloc[行列序號表示的行切片,行列序號表示的列切片]iloc使用行列序號表示的行列切片來定位數(shù)據(jù),行號或列號從0開始。append(other,ignore_index=False,verify_integrity=False)append方法向DataFrame中添加新的行參數(shù):other:DataFrame、series、dict、list這樣的數(shù)據(jù)結(jié)構(gòu)ignore_index:默認值為False,如果為True則不使用index標簽verify_integrity:默認值為False,如果為True當(dāng)創(chuàng)建相同的index時會拋出ValueError的異常一展身手在“2019級電商1班學(xué)生成績表”的任務(wù)中,將程序代碼里使用的iloc()方法修改為loc()方法,實現(xiàn)同樣的功能。制作團隊制作:徐玲重慶市九龍坡職業(yè)教育中心查詢總價最高的10個訂單主講人:徐玲重慶市九龍坡職業(yè)教育中心問題描述在訂單數(shù)據(jù)表1.1.17中,查詢總價最多的10個訂單。表1.1.17 訂單數(shù)據(jù)表訂單id數(shù)量名稱描述單價11ChipsandFreshTomatoSalsaNaN$2.3911Izze[Clementine]$3.3911NantucketNectar[Apple]$3.3911ChipsandTomatillo-GreenChiliSalsaNaN$2.3922ChickenBowl[Tomatillo-RedChiliSalsa(Hot),[BlackBeans...$16.98...............18331SteakBurrito[FreshTomatoSalsa,[Rice,BlackBeans,Sour...$11.7518331SteakBurrito[FreshTomatoSalsa,[Rice,SourCream,Cheese...$11.7518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...$11.2518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Lettu...$8.7518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...$8.75輸出結(jié)果表1.1.18總價最高的10個訂單訂單id數(shù)量名稱描述單價總價144315ChipsandFreshTomatoSalsaNaN44.25663.75166010BottledWaterNaN15.00150.005114ChickenBurrito[FreshTomatoSalsa,[FajitaVegetables,Rice,...35.00140.0014434ChickenBurrito[FreshTomatoSalsa,[Rice,BlackBeans,Chees...35.00140.0015598SideofChipsNaN13.52108.1613983CarnitasBowl[RoastedChiliCornSalsa,[FajitaVegetables,...35.25105.7514433VeggieBurrito[FreshTomatoSalsa,[FajitaVegetables,Rice,...33.75101.251783ChickenBowl[[FreshTomatoSalsa(Mild),Tomatillo-GreenC...32.9498.825113SteakBurrito[FreshTomatoSalsa,[FajitaVegetables,Rice,...27.7583.2514433SteakBurrito[FreshTomatoSalsa,[Rice,BlackBeans,Chees...27.7583.25題前思考問題描述問題解答怎樣讀取csv文件中的數(shù)據(jù)?read_csv()函數(shù)
怎樣轉(zhuǎn)換“單價”數(shù)據(jù)的類型?使用astype()函數(shù)強制轉(zhuǎn)換成浮點型
如何計算總價?利用“單價“和”數(shù)量“計算各訂單的總價
怎樣取總價最高的前10個訂單?用sort_values()方法對”總價“進行排序,用head()方法取數(shù)據(jù)表中的前10行數(shù)據(jù)
importpandasaspd
importnumpyasnpdata=pd.read_csv(r"D:\pydata\項目一\訂單數(shù)據(jù)表.csv",encoding='gbk')①data["單價"]=data["單價"].str[1:].astype(float)②data['總價']=data["單價"]*data['數(shù)量']③data.sort_values(by='總價',ascending=False,inplace=True)④data=data.head(10)⑤
print(data)
程序代碼使用read_csv()函數(shù)讀取csv文件中的數(shù)據(jù)。參數(shù)encoding='gbk'表示編碼方式為'gbk'。訂單id數(shù)量名稱描述單價11ChipsandFreshTomatoSalsaNaN$2.3911Izze[Clementine]$3.3911NantucketNectar[Apple]$3.3911ChipsandTomatillo-GreenChiliSalsaNaN$2.3922ChickenBowl[Tomatillo-RedChiliSalsa(Hot),[BlackBeans...$16.98...............18331SteakBurrito[FreshTomatoSalsa,[Rice,BlackBeans,Sour...$11.7518331SteakBurrito[FreshTomatoSalsa,[Rice,SourCream,Cheese...$11.7518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...$11.2518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Lettu...$8.7518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...$8.75importpandasaspd
importnumpyasnpdata=pd.read_csv(r"D:\pydata\項目一\訂單數(shù)據(jù)表.csv",encoding='gbk')①data["單價"]=data["單價"].str[1:].astype(float)②data['總價']=data["單價"]*data['數(shù)量']③data.sort_values(by='總價',ascending=False,inplace=True)④data=data.head(10)⑤
print(data)
程序代碼將數(shù)據(jù)框中的“單價”列轉(zhuǎn)換為實型。用str屬性的切片str[1:]取字符串從1開始到最后一個字符的子串,相當(dāng)于去掉“$”符號。
訂單id數(shù)量名稱描述單價011ChipsandFreshTomatoSalsaNaN2.39111Izze[Clementine]3.39211NantucketNectar[Apple]3.39311ChipsandTomatillo-GreenChiliSalsaNaN2.39422ChickenBowl[Tomatillo-RedChiliSalsa(Hot),[BlackBeans...16.98..................461718331SteakBurrito[FreshTomatoSalsa,[Rice,BlackBeans,Sour...11.75461818331SteakBurrito[FreshTomatoSalsa,[Rice,SourCream,Cheese...11.75461918341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...11.25462018341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Lettu...8.75462118341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...8.75importpandasaspd
importnumpyasnpdata=pd.read_csv(r"D:\pydata\項目一\訂單數(shù)據(jù)表.csv",encoding='gbk')①data["單價"]=data["單價"].str[1:].astype(float)②data['總價']=data["單價"]*data['數(shù)量']③data.sort_values(by='總價',ascending=False,inplace=True)④data=data.head(10)⑤
print(data)
程序代碼計算“單價”列和“數(shù)量”列的乘積,兩個序列相乘的結(jié)果,就是兩個序列對應(yīng)數(shù)值相乘的積構(gòu)成的新的序列。通過賦值,將這個序列以“總價”為列名添加到數(shù)據(jù)框的最后一列之后。
訂單id數(shù)量名稱描述單價總價11ChipsandFreshTomatoSalsaNaN2.392.3911Izze[Clementine]3.393.3911NantucketNectar[Apple]3.393.3911ChipsandTomatillo-GreenChiliSalsaNaN2.392.3922ChickenBowl[Tomatillo-RedChiliSalsa(Hot),[BlackBeans...16.9833.96..................18331SteakBurrito[FreshTomatoSalsa,[Rice,BlackBeans,Sour...11.7511.7518331SteakBurrito[FreshTomatoSalsa,[Rice,SourCream,Cheese...11.7511.7518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...11.2511.2518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Lettu...8.758.7518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...8.758.75importpandasaspd
importnumpyasnpdata=pd.read_csv(r"D:\pydata\項目一\訂單數(shù)據(jù)表.csv",encoding='gbk')①data["單價"]=data["單價"].str[1:].astype(float)②data['總價']=data["單價"]*data['數(shù)量']③data.sort_values(by='總價',ascending=False,inplace=True)④data=data.head(10)⑤
print(data)
程序代碼使用sort_values進行排序,其中by指定按照“總價”排序,ascending=False為降序排序,inplace=True表示會修改原數(shù)據(jù)。
訂單id數(shù)量名稱描述單價總價144315ChipsandFreshTomatoSalsaNaN44.25663.75166010BottledWaterNaN15.00150.005114ChickenBurrito[FreshTomatoSalsa,[FajitaVegetables,Rice,...35.00140.0014434ChickenBurrito[FreshTomatoSalsa,[Rice,BlackBeans,Chees...35.00140.0015598SideofChipsNaN13.52108.16..................471CannedSoda[Dr.Pepper]1.091.09871CannedSoda[CocaCola]1.091.091881CannedSoda[CocaCola]1.091.0911171CannedSoda[DietDr.Pepper]1.091.0916291BottledWaterNaN1.091.09importpandasaspd
importnumpyasnpdata=pd.read_csv(r"D:\pydata\項目一\訂單數(shù)據(jù)表.csv",encoding='gbk')①data["單價"]=data["單價"].str[1:].astype(float)②data['總價']=data["單價"]*data['數(shù)量']③data.sort_values(by='總價',ascending=False,inplace=True)④data=data.head(10)⑤
print(data)
程序代碼data.head(10)表示取數(shù)據(jù)表中的前10行數(shù)據(jù)。
訂單id數(shù)量名稱描述單價總價144315ChipsandFreshTomatoSalsaNaN44.25663.75166010BottledWaterNaN15.00150.005114ChickenBurrito[FreshTomatoSalsa,[FajitaVegetables,Rice,...35.00140.0014434ChickenBurrito[FreshTomatoSalsa,[Rice,BlackBeans,Chees...35.00140.0015598SideofChipsNaN13.52108.1613983CarnitasBowl[RoastedChiliCornSalsa,[FajitaVegetables,...35.25105.7514433VeggieBurrito[FreshTomatoSalsa,[FajitaVegetables,Rice,...33.75101.251783ChickenBowl[[FreshTomatoSalsa(Mild),Tomatillo-GreenC...32.9498.825113SteakBurrito[FreshTomatoSalsa,[FajitaVegetables,Rice,...27.7583.2514433SteakBurrito[FreshTomatoSalsa,[Rice,BlackBeans,Chees...27.7583.25任務(wù)小結(jié)1.通過read_csv()函數(shù)讀取csv文件;2.使用astype()函數(shù)將字符串類型強制轉(zhuǎn)換成浮點型;3.用sort_values()方法進行排序;4.用head()方法取數(shù)據(jù)表中的前幾行數(shù)據(jù)。一展身手在“訂單數(shù)據(jù)表”中,按總價升序排序后,取訂單最后十個數(shù)據(jù)。結(jié)果如表1.1.23所示。表1.1.23按升序排序總價最高的十個訂單訂單id數(shù)量名稱描述單價總價5113SteakBurrito[FreshTomatoSalsa,[FajitaVegetables,Rice,...$27.7583.2514433SteakBurrito[FreshTomatoSalsa,[Rice,BlackBeans,Chees...$27.7583.251783ChickenBowl[[FreshTomatoSalsa(Mild),Tomatillo-GreenC...$32.9498.8214433VeggieBurrito[FreshTomatoSalsa,[FajitaVegetables,Rice,...$33.75101.2513983CarnitasBowl[RoastedChiliCornSalsa,[FajitaVegetables,...$35.25105.7515598SideofChipsNaN$13.52108.165114ChickenBurrito[FreshTomatoSalsa,[FajitaVegetables,Rice,...$35.00140.0014434ChickenBurrito[FreshTomatoSalsa,[Rice,BlackBeans,Chees...$35.00140.00166010BottledWaterNaN$15.00150.00144315ChipsandFreshTomatoSalsaNaN$44.25663.75制作團隊制作:徐玲重慶市九龍坡職業(yè)教育中心篩選出計算機老師主講人:徐玲重慶市九龍坡職業(yè)教育中心問題描述在“某學(xué)校五星教師培養(yǎng)對象參培名單”中,完成如下任務(wù)操作:1.在備注列填充空值為“住宿”2.篩選出所有的計算機老師表1.2.1某學(xué)校五星教師培養(yǎng)對象參培名單序號姓名性別任教學(xué)科培養(yǎng)星級備注1陳會女德育教學(xué)之星NaN2張麗女德育教學(xué)之星NaN3沈仙菊女英語教學(xué)之星不住宿4胡捷女語文教學(xué)之星不住宿5黃愛玲女會計教學(xué)之星不住宿………………50趙蘭蘭女旅游服務(wù)育人之星NaN51黃浩男汽車發(fā)動機管理之星NaN52黃潔女語文管理之星不住宿53邱向東男財經(jīng)管理之星NaN54張春梅女英語管理之星不住宿輸出結(jié)果表1.2.2篩選出的計算機老師名單序號姓名性別任教學(xué)科培養(yǎng)星級備注19李梅女計算機技能之星住宿21羅靜女計算機技能之星住宿27蘇遠男計算機科研之星不住宿32李珊珊女計算機科研之星不住宿36吳明明女計算機科研之星住宿38李玉女計算機育人之星住宿41陳芳女計算機育人之星住宿43李莉女計算機育人之星住宿45劉俊男計算機育人之星住宿題前思考問題描述問題解答怎樣填充空值?使用fillna()函數(shù)填充空值NAN
怎樣篩選出所需數(shù)據(jù)?用query()方法篩選出符合條件的數(shù)據(jù)
importpandasaspd
data=pd.read_excel(r"D:\pydata\項目一\某學(xué)校五星教師培養(yǎng)對象參培名單.xls",skiprows=1)
data['備注'].fillna("住宿",inplace=True)
data=data.query("任教學(xué)科=='計算機'")
print(data)
程序代碼使用pd.read_excel()函數(shù)導(dǎo)入Excel工作表數(shù)據(jù)。importpandasaspd
data=pd.read_excel(r"D:\pydata\項目一\某學(xué)校五星教師培養(yǎng)對象參培名單.xls",skiprows=1)
data['備注'].fillna("住宿",inplace=True)
data=data.query("任教學(xué)科=='計算機'")
print(data)
程序代碼用fillna()方法將'備注'列的空值填充為“住宿”,因為需要在原DataFrame中修改,所以關(guān)鍵字參數(shù)inplace設(shè)置為True。序號姓名性別任教學(xué)科培養(yǎng)星級備注1陳會女德育教學(xué)之星住宿2張麗女德育教學(xué)之星住宿3沈仙菊女英語教學(xué)之星不住宿4胡捷女語文教學(xué)之星不住宿5黃愛玲女會計教學(xué)之星不住宿………………50趙蘭蘭女旅游服務(wù)育人之星住宿51黃浩男汽車發(fā)動機管理之星住宿52黃潔女語文管理之星不住宿53邱向東男財經(jīng)管理之星住宿54張春梅女英語管理之星不住宿importpandasaspd
data=pd.read_excel(r"D:\pydata\項目一\某學(xué)校五星教師培養(yǎng)對象參培名單.xls",skiprows=1)
data['備注'].fillna("住宿",inplace=True)
data=data.query("任教學(xué)科=='計算機'")
print(data)
程序代碼篩選出“任教學(xué)科”列中的“計算機”老師。序號姓名性別任教學(xué)科培養(yǎng)星級備注19李梅女計算機技能之星住宿21羅靜女計算機技能之星住宿27蘇遠男計算機科研之星不住宿32李珊珊女計算機科研之星不住宿36吳明明女計算機科研之星住宿38李玉女計算機育人之星住宿41陳芳女計算機育人之星住宿43李莉女計算機育人之星住宿45劉俊男計算機育人之星住宿任務(wù)小結(jié)1.使用fillna()函數(shù)填充空值NAN;2.使用query()篩選出符合條件的數(shù)據(jù)。一展身手
同樣在“某學(xué)校五星教師培養(yǎng)對象參培名單”中,篩選出所有“育人之星”的老師,結(jié)果如表1.2.6所示。表1.2.6育人之星名單序號姓名性別任教學(xué)科培養(yǎng)星級備注38李玉女計算機育人之星住宿39陳梅女心理學(xué)育人之星住宿40陳娟女英語育人之星不住宿41陳芳女計算機育人之星住宿42陳維女語文育人之星不住宿43李莉女計算機育人之星住宿44高玲女?dāng)?shù)學(xué)育人之星住宿45劉俊男計算機育人之星住宿46劉容女語文育人之星住宿47羅慧珊女英語育人之星住宿48楊小燕女英語育人之星不住宿49趙心萍女英語育人之星不住宿50趙蘭蘭女旅游服務(wù)育人之星住宿制作團隊制作:徐玲重慶市九龍坡職業(yè)教育中心查找聯(lián)考專業(yè)成績在350分以上的計算機專業(yè)男生主講人:徐玲重慶市九龍坡職業(yè)教育中心問題描述在“高職培優(yōu)班名單”中,查找出聯(lián)考專業(yè)成績在350分以上的計算機專業(yè)的男生。“高職培優(yōu)班名單”見表1.2.7。表1.2.7高職培優(yōu)班名單專業(yè)姓名性別聯(lián)考文化總分入學(xué)考文化總分文化平均聯(lián)考專業(yè)總分入學(xué)考專業(yè)總分專業(yè)平均班級電子技術(shù)類莫永生男254.5246250.25136.0176.0156.02018級機電9班電子技術(shù)類屈超男218.5231224.75144.0152.0148.02018級機電9班電子技術(shù)類閔小芳女210.5213211.75130.0140.0135.02018級機電9班電子技術(shù)類鄒永婷女105.0131118.0058.0138.098.02018級機電9班電子技術(shù)類翁夏垚女92.0143117.5052.076.064.02018級機電9班..............................學(xué)前教育吳全高男77.58179.25326.0241.0283.52018秋航旅1班學(xué)前教育安海軍男82.05870.00245.0172.0208.52018秋航旅1班學(xué)前教育趙煒瀾女78.56069.25282.0209.0245.52018秋航旅1班學(xué)前教育駱洪亮男59.06964.00274.0185.0229.52018秋航旅1班學(xué)前教育魯宏雨女61.05658.50315.0281.0298.02018春航旅2班輸出結(jié)果表1.2.8聯(lián)考專業(yè)成績在350分以上的計算機男生專業(yè)姓名性別聯(lián)考文化總分入學(xué)考文化總分文化平均聯(lián)考專業(yè)總分入學(xué)考專業(yè)總分專業(yè)平均班級計算機類魏旭男266.5技能大賽266.50399.00.0399.02018級秋電商3班計算機類桑傳超男212.0技能大賽212.00413.00.0413.02018級秋電商3班計算機類翁世川男197.0技能大賽197.00393.00.0393.02018級秋電商3班計算機類盧京平男202.5175188.75353.0352.0352.52018級秋電商3班計算機類於宏男182.5技能大賽182.50402.00.0402.02018級秋電商3班計算機類牛崗男189.0148.5168.75352.0379.0365.52018級秋電商3班計算機類許洋男143.5162.5153.00359.0356.0357.52018級秋電商3班題前思考問題描述問題解答需要查找的條件有哪些?1.聯(lián)考專業(yè)成績在350分以上2.計算機專業(yè)3.男生
怎樣查找出滿足多個條件的數(shù)據(jù)?使用query()方法篩選出符合多個條件的數(shù)據(jù)。
importpandasaspd
data=pd.read_excel(r"D:\pydata\項目一\高職培優(yōu)班名單.xlsx",sheet_name="學(xué)生全部名單")
data=data.query("聯(lián)考專業(yè)總分>350and專業(yè)=='計算機類'and性別=='男'")
print(data)
程序代碼使用pd.read_excel()函數(shù)導(dǎo)入Excel工作表數(shù)據(jù),其中sheet_name="學(xué)生全部名單"表示導(dǎo)入“學(xué)生全部名單”這個工作表中的數(shù)據(jù),如果不指定參數(shù)sheet_name則導(dǎo)入第一個工作表。importpandasaspd
data=pd.read_excel(r"D:\pydata\項目一\高職培優(yōu)班名單.xlsx",sheet_name="學(xué)生全部名單")
data=data.query("聯(lián)考專業(yè)總分>350and專業(yè)=='計算機類'and性別=='男'")
print(data)
程序代碼用query()方法篩選出同時滿足“聯(lián)考專業(yè)總分>350”,“專業(yè)=='計算機類'”和“性別=='男'”這三個條件的數(shù)據(jù)。因為三個條件要同時滿足,所以用and連接這三個條件。專業(yè)姓名性別聯(lián)考文化總分入學(xué)考文化總分文化平均聯(lián)考專業(yè)總分入學(xué)考專業(yè)總分專業(yè)平均班級計算機類魏旭男266.5技能大賽266.50399.00.0399.02018級秋電商3班計算機類桑傳超男212.0技能大賽212.00413.00.0413.02018級秋電商3班計算機類翁世川男197.0技能大賽197.00393.00.0393.02018級秋電商3班計算機類盧京平男202.5175188.75353.0352.0352.52018級秋電商3班計算機類於宏男182.5技能大賽182.50402.00.0402.02018級秋電商3班計算機類牛崗男189.0148.5168.75352.0379.0365.52018級秋電商3班計算機類許洋男143.5162.5153.00359.0356.0357.52018級秋電商3班任務(wù)小結(jié)使用query()方法篩選出符合多個條件的數(shù)據(jù)。多個條件如果同時成立,用and連接,如果只需要成立一個則用or連接。一展身手在“高職培優(yōu)班名單”中,查找出聯(lián)考文化成績在200分以上的會計類專業(yè)的女生。結(jié)果如表1.2.10所示:表1.2.10聯(lián)考文化成績200分以上的會計類女生專業(yè)姓名性別聯(lián)考文化總分入學(xué)考文化總分文化平均聯(lián)考專業(yè)總分入學(xué)考專業(yè)總分專業(yè)平均班級會計類金雪女268.0264266.00419.0338.0378.502018級電商2班(會計高職)會計類吳蕓女206.0234.5220.25221.0247.5234.252018級電商2班(會計高職)會計類郎雪女210.0190200.00330.0295.0312.502018級電商2班(會計高職)會計類茍娟女220.5170195.25346.0345.0345.502018級電商2班(會計高職)制作團隊制作:徐玲重慶市九龍坡職業(yè)教育中心找出姓張的同學(xué)主講人:徐玲重慶市九龍坡職業(yè)教育中心問題描述在“學(xué)生信息”表中,找出所有姓張的同學(xué)的數(shù)據(jù)。學(xué)生信息表如表1.3.1所示。表1.3.1學(xué)生信息身份證號姓名性別年級入學(xué)年月修讀專業(yè)班級戶籍所在省戶籍所在市戶籍所在縣戶籍地址
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 瀝青支路施工方案(3篇)
- 活動型新聞策劃方案(3篇)
- 罕見腫瘤的個體化治療長期生存數(shù)據(jù)分析與策略優(yōu)化-1-1
- 遼寧省重點協(xié)作校2026屆高三生物第一學(xué)期期末調(diào)研試題含解析
- 罕見腫瘤的個體化治療治療目標設(shè)定原則與患者期望
- 2025年建筑施工企業(yè)市場開發(fā)管理制度
- 財務(wù)制度經(jīng)辦人簽字規(guī)定
- 兒童樂園財務(wù)制度
- 漁業(yè)公司財務(wù)制度
- 出納工程財務(wù)制度
- 2025學(xué)年度人教PEP五年級英語上冊期末模擬考試試卷(含答案含聽力原文)
- 醫(yī)院醫(yī)院醫(yī)院后勤管理
- 2025年岐黃天使中醫(yī)課后試題及答案
- 肺癌術(shù)后呼吸功能鍛煉指導(dǎo)
- 保障供貨協(xié)議書
- 2025年中國糖尿病腎臟病基層管理指南(全文)
- 顱內(nèi)腫瘤切除術(shù)手術(shù)配合
- CRRT患者體位管理與并發(fā)癥預(yù)防方案
- 財政評審應(yīng)急預(yù)案
- 超市食品安全培訓(xùn)記錄課件
- 【語文】湖北省武漢市光谷第二小學(xué)小學(xué)一年級上冊期末試題
評論
0/150
提交評論