Python數(shù)據(jù)分析與可視化李良課后參考答案_第1頁
Python數(shù)據(jù)分析與可視化李良課后參考答案_第2頁
Python數(shù)據(jù)分析與可視化李良課后參考答案_第3頁
Python數(shù)據(jù)分析與可視化李良課后參考答案_第4頁
Python數(shù)據(jù)分析與可視化李良課后參考答案_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第1章數(shù)據(jù)分析概述第1章測試一、選擇題:1.D 2.B 3.B 4.C 5.D二、填空題:1.import2.pycharm第2章Python基礎(chǔ)2.1Python基本操作鞏固訓(xùn)練通過input函數(shù)輸入一個四位數(shù),輸出這個四位數(shù)的千位、百位、十位和個位。參考代碼如下:n=int(input("請輸入一個四位數(shù):"))qw=n//1000bw=n//100%10sw=n//10%10gw=n%10print("千位為:%d\n百位為:%d\n十位為:%d\n各位為:%d\n"%(qw,bw,sw,gw))2.2Python選擇結(jié)構(gòu)鞏固訓(xùn)練某市出租車的收費標(biāo)準(zhǔn)是:3公里以下,收起步費10元,超過3公里不超過10公里(遠程標(biāo)準(zhǔn)),每公里2.1元,超過10公里,每公里3.2元,若行程為11.5公里,則收費是多少元?(收費結(jié)果保留小數(shù)點1位)參考代碼如下:distance=float(input("請輸入距離="))ifdistance<=3:price=10elifdistance<=10:price=10+2.1*(distance-3)else:price=10+2.1*(10-3)+3.2*(distance-10)print("距離=%.1f公里,收費=%.1f元"%(distance,price))2.3Python循環(huán)語句鞏固訓(xùn)練利用雙層嵌套for循環(huán),輸出九九乘法表。參考代碼如下:foriinrange(1,10):forjinrange(1,10):ifj<=i:#輸出正三角形狀print("%d*%d=%d"%(i,j,i*j),end='\t')#一行內(nèi)容之間用空格隔開print()#每輸出一行,輸出一個換行符2.4Python列表操作鞏固訓(xùn)練新建一個客戶名單列表["張楊","徐天","王飛","李明","潘悅"],并命名為name_list,利用for循環(huán)語句逐一輸出客戶"王飛"之前的名單。參考代碼如下:name_list=["張楊","徐天","王飛","李明","潘悅"]str="王飛"n=name_list.index(str)foriinrange(n):print(name_list[i])2.5Python字符串操作鞏固訓(xùn)練創(chuàng)建字符串列表["3.5萬元","4萬元","3萬元"],將列表中元素的單位“萬元”都轉(zhuǎn)成元,并去掉單元“元”。(提示:先創(chuàng)建一個空列表,作為存放轉(zhuǎn)換結(jié)果的容器,結(jié)果可以利用for循環(huán)遍歷每一個元素,進行轉(zhuǎn)換,再將轉(zhuǎn)換結(jié)果通過append逐一放入空列表。)參考代碼如下:list=["3.5萬元","4萬元","3萬元"]result=[]foriinlist:i=i.replace("萬元","")i=float(i)*10000result.append(i)print(result)2.6Python字典操作鞏固訓(xùn)練構(gòu)建餐飲消費明細的字典data_dict3,訂單編號為a0001的name(姓名)、amount(消費金額)為“徐倩”和126,訂單編號為a0002的name(姓名)、amount(消費金額)為“張峰”和86,訂單編號為b0003的name(姓名)、amount(消費金額)為“肖明”和57,訂單編號為c0004的name(姓名)為“楊天”和88。參考代碼如下:dict={'name':{'a0001':'徐倩','a0002':'張峰','b0003':'肖明','c0004':'楊天'},'amount':{'a0001':126,'a0002':86,'b0003':57,'c0004':88}}print(dict)2.7Python函數(shù)操作鞏固訓(xùn)練創(chuàng)建一個列表list1,list1=['3.5萬','4萬','2.2萬'],利用匿名函數(shù)的map操作將list1轉(zhuǎn)換為list2,list2=[35000,40000,22000]。參考代碼如下:list_price=['3.5萬','4萬','2.2萬']print("原始列表為:",list_price)result=list(map(lambdax:float(x.replace("萬",""))*10000,list_price))print("轉(zhuǎn)換后的列表為:",result)2.8Python的NumPy庫鞏固訓(xùn)練創(chuàng)建由1到16十六個數(shù)字組成的4*4的二維數(shù)組,并計算每一列的平均數(shù)。(可以用mean函數(shù)求平均值)參考代碼如下:importnumpyasnparr=np.arange(1,17)arr=arr.reshape(4,4)print("構(gòu)建的二維數(shù)組為:\n",arr)print("各列的平均值為:")foriinrange(4):mean=arr[:,i].mean()print(mean)第2章測試一、選擇題:1.A 2.D 3.B 4.A 5.B 6.D 7.B 8.A 9.D 10.C二、填空題:1.\n2.43.append4.False5.pop三、編程題:1.利用循環(huán)語句,計算1-5的階層的和:1!+2!+3!+4!+5!。參考代碼如下:list=[1,2,3,4,5]sum=0forninlist:product=1foriinrange(1,n+1):product=product*isum=sum+productprint(sum)2.利用循環(huán)語句與跳出循環(huán)方法break,判斷某個數(shù)是否是質(zhì)數(shù)。參考代碼如下:'''1.只要能夠在2到n-1之間找到一個因素,就是合數(shù)2.如果for循環(huán)正常結(jié)束,沒有觸發(fā)break,即沒有找到一個因素,就是質(zhì)數(shù)'''n=int(input("請輸入一個整數(shù):"))foriinrange(2,n):ifn%i==0:print("%d是合數(shù)"%n)breakelse:print("%d是質(zhì)數(shù)"%n)3.在10000以內(nèi),找出能夠既是平方數(shù)同時個位是1的數(shù),如:1、81、121等,構(gòu)成一個列表,并輸出列表的前10個元素。參考代碼如下:result=[]foriinrange(100):square=i*iifsquare%10==1:result.append(square)print(result[:10])4.輸入字符串日期“2020/2/2”,并賦值為變量date,通過字符串分割,再依次輸出年、月、日。參考代碼如下:date="2020/2/2"year=date.split("/")[0]month=date.split("/")[1]day=date.split("/")[2]print("年=%s\n月=%s\n日=%s"%(year,month,day))第3章利用pandas進行數(shù)據(jù)預(yù)處理3.1數(shù)據(jù)的創(chuàng)建與操作鞏固訓(xùn)練任意選擇一種不同的方法創(chuàng)建DataFrame。源數(shù)據(jù)mathchineseenglish0019588100002859276003776468參考代碼如下:importpandasaspddict={'math':[95,85,77],'chinese':[88,92,64],'english':[100,76,68]}data=pd.DataFrame(dict,index=['001','002','003'])print(data)3.2數(shù)據(jù)的導(dǎo)入與保存鞏固訓(xùn)練加載sklearn庫中自帶的數(shù)據(jù)集load_boston,查看load_boston數(shù)據(jù)集的列名和前5條數(shù)據(jù),并依此生成Dataframe,命名為boston,將boston用csv格式進行保存,保存的文件名為boston.csv,保存路徑為“c:\data\boston.csv”。參考代碼如下:fromsklearnimportdatasetsimportpandasaspdload_boston=datasets.load_boston()boston=pd.DataFrame(load_boston.data,columns=load_boston.feature_names)pd.set_option('display.width',None)print(boston.head())3.3數(shù)據(jù)的新增與刪除鞏固訓(xùn)練根據(jù)導(dǎo)入的數(shù)據(jù)data1,完成:(1)將“地區(qū)”列拆分為“省份”列和“城市”列。(2)生成新列“折扣金額”,計算公式為“折扣金額”=“銷售金額”*(1-“折扣”)。(3)刪除索引號5到10的行,再刪除“地區(qū)”列。參考代碼如下:importpandasaspdpd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data1=pd.read_excel('c:\data\supermarket.xlsx')data1['省份']=data1['地區(qū)'].str.split('-',expand=True)[0]data1['城市']=data1['地區(qū)'].str.split('-',expand=True)[1]data1['銷售金額']=data1['單價']*data1['數(shù)量']data1['折扣金額']=data1['銷售金額']*(1-data1['折扣'])data1=data1.drop(labels=range(5,11),axis=0)data1=data1.drop(labels='地區(qū)',axis=1)print(data1.head(10))3.4數(shù)據(jù)的篩選與切片鞏固訓(xùn)練利用read_excel導(dǎo)入supermarket.xlsx(supermarket.xlsx存放在c:\data路徑中)中的“銷售統(tǒng)計”工作表(第1張工作表),導(dǎo)入數(shù)據(jù)的前10行,并完成:(1)選取“城市”、“銷售金額”、“折扣金額”3列數(shù)據(jù)。(2)選取“銷售金額”大于5000的“客戶姓名”和“客戶ID”。參考代碼如下:importpandasaspdpd.set_option('display.max_columns',None)pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data=pd.read_excel('c:\data\supermarket.xlsx').head(10)result1=data[['城市','銷售金額','折扣金額']]print(result1)result2=data.loc[data['銷售金額']>5000,['客戶姓名','客戶ID']]print(result2)3.5數(shù)據(jù)的去空與去重鞏固訓(xùn)練利用read_csv導(dǎo)入score.csv(score.csv存放在c:\data路徑中),數(shù)據(jù)源如圖并完成:源數(shù)據(jù)(部分)(1)各列的空值頻數(shù)。(2)刪除兩列“gender”和“area”中任意一個為空值的行。(3)刪除4個科目列全為空值的行。(4)刪除兩列“gender”和“area”中有重復(fù)值的行,保留最后一次出現(xiàn)的值。參考代碼如下:importpandasaspdpd.set_option('display.max_columns',None)pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data=pd.read_csv('c:\data\score.csv',encoding='gbk')isnull_num=data.isnull().sum()print(isnull_num)print(data.shape[0])data_drop1=data.dropna(axis=0,subset=['gender','area'],how='any')print(data_drop1.shape[0])data_drop2=data.dropna(axis=0,subset=['math','chinese','english','computer'],how='all')print(data_drop2.shape[0])data_drop3=data.drop_duplicates(subset=['gender','area'],keep='last')print(data_drop3.shape[0])3.6數(shù)據(jù)的填充與替換鞏固訓(xùn)練利用read_excel導(dǎo)入supermarket.xlsx(supermarket.xlsx存放在c:\data路徑中)中的“數(shù)據(jù)分析”工作表(第2張工作表),將導(dǎo)入數(shù)據(jù)的前5行命名為data2,并完成:(1)在“城市”列中,將“杭州”、“內(nèi)江”、“鎮(zhèn)江”、“汕頭”替換為“HZ”、“NJ”、“ZJ”、“ST”。(2)將“數(shù)量”列中的單位“件”去掉,利用astype('float')將“數(shù)量”列轉(zhuǎn)換為浮點數(shù),并利用dtype查看“數(shù)量”列的數(shù)據(jù)類型。參考代碼如下:importpandasaspdpd.set_option('display.max_columns',None)pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data2=pd.read_excel('c:\data\supermarket.xlsx',sheet_name="數(shù)據(jù)分析").head(5)data2['城市']=data2['城市'].replace("杭州","HZ")data2['城市']=data2['城市'].replace("內(nèi)江","NJ")data2['城市']=data2['城市'].replace("鎮(zhèn)江","ZJ")data2['城市']=data2['城市'].replace("汕頭","ST")print(data2)data2['數(shù)量']=data2['數(shù)量'].str.replace("件","")print(data2)3.7數(shù)據(jù)的拼接和合并鞏固訓(xùn)練利用循環(huán)語句,依次導(dǎo)入score.xlsx中前5張工作表“1班”、“2班”、“3班”、“4班”、“5班”,并利用append函數(shù)依次拼接,連接時,忽略原來數(shù)據(jù)的索引,查詢合并數(shù)據(jù)行數(shù)。參考代碼如下:importpandasaspdpd.set_option('display.max_columns',None)pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data=pd.read_excel('c:\data\score.xlsx',sheet_name=0)foriinrange(1,5):data_append=pd.read_excel('c:\data\score.xlsx',sheet_name=i)data=data.append(data_append,ignore_index=True)print(data.shape[0])3.8時間的轉(zhuǎn)換與提取鞏固訓(xùn)練在data2中,將“訂單日期”的日提出,并將提取的信息放入新列“日”,選取data2中每月上旬的數(shù)據(jù),并計算數(shù)據(jù)的行數(shù)。參考代碼如下:importpandasaspdpd.set_option('display.max_columns',None)pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data2=pd.read_csv('c:\data\supermarket.csv',encoding='gbk')data2['訂單日期']=pd.to_datetime(data2['訂單日期'])data2['日']=data2['訂單日期'].dt.dayresult=data2.loc[data2['日']<=10]print(result)第3章測試一、選擇題:1.B 2.D 3.C 4.B 5.D 6.C 7.A 8.D 9.A 10.C二、填空題:1.shape[0]2.字符型3.行4.True5.to_datetime三、編程題:1.利用read_csv導(dǎo)入score.csv,完成:(1)查看所有列的空值的數(shù)量。(2)刪除4個科目列全為空值的行。(3)刪除“ID”列中重復(fù)值的行,保留第一次出現(xiàn)的值。(4)將“gender”列的空值填充為“男”。(5)選取“math”和“english”兩列前5行的數(shù)據(jù)。(6)選取“chinese”和“computer”列大于80的數(shù)據(jù)。參考代碼如下:importpandasaspdpd.set_option('display.max_columns',None)pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data=pd.read_csv("c:/data/score.csv",encoding='gbk')print(data.isnull().sum())data_drop1=data.dropna(subset=['math','chinese','english','computer'],how='all')print(data_drop1.shape[0])data_drop2=data.drop_duplicates(subset='ID',keep='first')print(data_drop2.shape[0])data_fill=data.fillna(value={'gender':'男'})print(data_fill.head(10))data_loc1=data.loc[0:4,['math','english']]print(data_loc1)data_loc2=data.loc[(data['chinese']>80)&(data['computer']>80)]print(data_loc2)2.利用read_csv導(dǎo)入study_time.csv,完成:(1)將“start_time”和“stop_time”兩列從字符型轉(zhuǎn)換為時間型。(2)從“start_time”列中提取日和星期名,分別生成“day”和“weekday”2列。(3)生成新列“time”,計算公式是time=stop_time-start_time。參考代碼如下:importpandasaspdpd.set_option('display.max_columns',None)pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data=pd.read_csv("c:/data/study_time.csv",encoding='gbk')data['start_time']=pd.to_datetime(data['start_time'])data['stop_time']=pd.to_datetime(data['stop_time'])data['day']=data['start_time'].dt.daydata['weekday']=data['start_time'].dt.weekday_namedata['time']=data['stop_time']-data['start_time']print(data.head())第4章利用pandas進行數(shù)據(jù)分析4.1數(shù)據(jù)的排序與排名鞏固訓(xùn)練利用read_csv導(dǎo)入c:\data\score.csv,利用前10行作為數(shù)據(jù),完成:(1)將“area”列中的“江蘇-蘇州”替換為0,“江蘇-鹽城”替換為1,“江蘇-連云港”替換為2,“江蘇-常州”替換為3,“山東-濟南”替換為4,按照“area”列升序排序。(2)生成一個新列,列名為“all”,計算公式:all=math+Chinese+English。按照第1關(guān)鍵字“all”列降序排序,再按照第2關(guān)鍵字“computer”列升序排序。(3)去掉“all”列中的帶有空值的行,按“all”列降序排名,如果排名相同,全部取最小排名。參考代碼如下:importpandasaspdpd.set_option('display.max_columns',None)pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data=pd.read_csv("c:/data/score.csv",encoding='gbk').head(10)data['area']=data['area'].replace({'江蘇-蘇州':0,'江蘇-鹽城':1,'江蘇-連云港':2,'江蘇-常州':3,'山東-濟南':4,})result1=data.sort_values(by='area',ascending=True)print(result1)data['all']=data['math']+data['chinese']+data['english']result2=data.sort_values(by=['all','computer'],ascending=[False,True])print(result2)data=data.dropna(subset=['all'])data['all_rank_min']=data['all'].rank(method='min',ascending=False)print(data)4.2數(shù)據(jù)的統(tǒng)計與描述鞏固訓(xùn)練利用read_excel導(dǎo)入supermarket.xlsx中的“銷售統(tǒng)計”工作表(第1張工作表),完成:(1)去掉折扣為0的數(shù)據(jù)后,計算平均折扣。(2)計算“折扣金額”的中位數(shù)。(3)統(tǒng)計訂單數(shù)量最多的城市,并統(tǒng)計次數(shù)。參考代碼如下:importpandasaspdpd.set_option('display.max_columns',None)pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data=pd.read_excel("c:/data/supermarket.xlsx",sheet_name=0)result1=data.loc[data['折扣']!=0]['折扣'].mean()print("平均折扣為:%.2f"%result1)result2=data['折扣金額'].median()print("折扣金額中位數(shù)為:%.2f"%result2)result3=data['城市'].describe()top=result3['top']freq=result3['freq']print("訂單數(shù)量最多的城市為:%s,其次數(shù)為:%d"%(top,freq))4.3數(shù)據(jù)的分組與分段鞏固訓(xùn)練利用read_csv導(dǎo)入c:\data\score.csv,完成:(1)按“class”(班級)分組,計算各班“math”列的平均數(shù)和中位數(shù)。(2)將“math”列進行分段,成績段分段方法為:0-59設(shè)為“不及格”,60-74為“合格”,75-89為“良好”,90-100為“優(yōu)秀”,并將結(jié)果生成新列“math_cut”。參考代碼如下:importpandasaspdpd.set_option('display.max_columns',None)pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data=pd.read_csv("c:/data/score.csv",encoding='gbk')result1_1=data.groupby(by='class')['math'].mean()result1_2=data.groupby(by='class')['math'].median()print("各班的數(shù)學(xué)平均分為:\n",round(result1_1,1))print("各班的數(shù)學(xué)中位數(shù)為:\n",round(result1_2,1))data['math_cut']=pd.cut(data['math'],bins=[0,59,74,89,100],labels=['不及格','及格','良好','優(yōu)秀'])print(data.head())4.4數(shù)據(jù)的交叉與透視鞏固訓(xùn)練利用read_excel導(dǎo)入c:\data\score.xls,完成:(1)將“area”列拆分成兩個新列,將其中的省份生成新列“province”,將其中的城市生成新列“city”。(2)制作頻數(shù)交叉表,統(tǒng)計不同省份不同性別的頻數(shù)。(3)制作數(shù)據(jù)透視表,統(tǒng)計不同城市不同性別對應(yīng)的數(shù)學(xué)的平均分。參考代碼如下:importpandasaspdimportnumpyasnppd.set_option('display.max_columns',None)pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data=pd.read_excel("c:/data/score.xls")data['province']=data['area'].str.split('-',expand=True)[0]data['city']=data['area'].str.split('-',expand=True)[1]result1=pd.crosstab(index=data['province'],columns=data['gender'])print(result1)result2=pd.pivot_table(data=data,index='city',columns='gender',values='math',aggfunc=np.mean)print(round(result2,1))4.5數(shù)據(jù)的正態(tài)性分析鞏固訓(xùn)練利用read_excel導(dǎo)入c:\data\score.xls,完成:(1)繪制“math”列的直方圖,判斷“math”列是否服從正態(tài)分布。(2)通過K-S檢驗判斷“math”列是否服從正態(tài)分布。參考代碼如下:importpandasaspdimportmatplotlib.pyplotaspltpd.set_option('display.max_columns',None)pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data=pd.read_excel("c:/data/score.xls")data['math'].hist()plt.show()fromscipy.statsimportkstestinput=data['math']p=kstest(input,'norm')[1]ifp>0.05:print("正態(tài)性k-s檢驗的p值=%.4f,所以數(shù)據(jù)服從正態(tài)分布。"%p)else:print("正態(tài)性k-s檢驗的p值=%.4f,所以數(shù)據(jù)不服從正態(tài)分布。"%p)4.6數(shù)據(jù)的相關(guān)性分析鞏固訓(xùn)練利用read_csv導(dǎo)入鳶尾花數(shù)據(jù)集iris的前4列和前50行數(shù)據(jù),完成:(1)繪制Pet_len與其余各列的散點圖。(2)繪制Pet_len與其余各列的相關(guān)系數(shù)。參考代碼如下:importpandasaspdimportmatplotlib.pyplotaspltdata=pd.read_csv("c:\data\iris.csv").iloc[:50,:4]col=data.columnsx='Pet_len'y_s=list(filter(lambdai:i!=x,col))foryiny_s:plt.scatter(data[x],data[y])plt.title("%s--%s"%(x,y))plt.show()result=data.corr()[x]print(result)第4章測試一、選擇題:1.B 2.B 3.A 4.C 5.B 6.D 7.D 8.A 9.B 10.A二、填空題:1.top2.每個分段的標(biāo)簽3.0;14.服從5.正三、編程題:1.利用read_csv導(dǎo)入鳶尾花數(shù)據(jù)集iris(其中Sep_len表示花萼長度,Sep_wid表示花萼寬度,Pet_len表示花瓣長度,Pet_wid表示花瓣寬度,Iris_type鳶尾花種類),完成:(1)按照“Sep_len”列降序排序。(2)計算“Pet_len”列與“Pet_wid”列的平均值和中位數(shù)。(3)按照“Iris_type”列分組,再計算“Sep_len”的平均值。(4)繪制“Sep_len”的直方圖。(5)利用K-S方法,判斷“Sep_len”列是否服從正態(tài)分布。參考代碼如下:importpandasaspdimportmatplotlib.pyplotaspltdata=pd.read_csv("c:\data\iris.csv")result1=data.sort_values(by='Sep_len',ascending=False)print(result1.head())print("="*30)importnumpyasnpresult2_1=data['Pet_len'].mean()result2_2=data['Pet_len'].median()result2_3=data['Pet_wid'].mean()result2_4=data['Pet_wid'].median()print("%.2f\n%.2f\n%.2f\n%.2f"%(result2_1,result2_2,result2_3,result2_4))print("="*30)result3=data.groupby(by='Iris_type')['Sep_len'].mean()print(result3)print("="*30)importmatplotlib.pyplotaspltdata['Sep_len'].hist()plt.show()print("="*30)fromscipy.statsimportkstestinput=data['Sep_len']p=kstest(input,'norm')[1]ifp>0.05:print("正態(tài)性k-s檢驗的p值=%.4f,所以數(shù)據(jù)服從正態(tài)分布。"%p)else:print("正態(tài)性k-s檢驗的p值=%.4f,所以數(shù)據(jù)不服從正態(tài)分布。"%p)第5章利用Matplotlib進行數(shù)據(jù)可視化5.1繪圖設(shè)置與簡單繪圖鞏固訓(xùn)練創(chuàng)建Series,數(shù)據(jù)為641、578、612、561、739,其對應(yīng)的index為“周一”、“周二”、“周三”、“周四”、“周五”,完成:(1)利用rcParams參數(shù)設(shè)置繪圖窗口的大小為8*8,設(shè)置中文字體為黑體。(2)繪制折線圖,柱狀的顏色為紅色。(3)添加圖表標(biāo)題“周一到周五平均營業(yè)額”。參考代碼如下:importpandasaspdimportmatplotlib.pyplotaspltdata=pd.Series([641,578,612,561,739],index=['周一','周二','周三','周四','周五'])plt.rcParams['figure.figsize']=(12,8)plt.rcParams['font.sans-serif']=['SimHei']data.plot(kind='line',color='skyblue')plt.title("周一到周五平均營業(yè)額")plt.show()5.2繪制柱形圖鞏固訓(xùn)練創(chuàng)建DataFrame數(shù)據(jù)data,data包含4行3列,記錄了蘇州、青島、廈門3個城市的GDP(單位:億元)。練習(xí)數(shù)據(jù)源index蘇州重慶杭州2017年1700019530125562018年1869720363135002019年193002360515373完成:(1)繪制多重柱形圖,年份為橫坐標(biāo),各個城市的GDP為縱坐標(biāo)。(2)在多重柱形圖中,添加各個城市GDP的數(shù)據(jù)標(biāo)簽。參考代碼如下:importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']dict={'蘇州':[17000,18697,19300],'重慶':[19530,20363,23605],'杭州':[12556,13500,15373]}data=pd.DataFrame(dict,index=['2017年','2018年','2019年'])pd.set_option('display.unicode.east_asian_width',True)x=np.arange(1,4)height1=data['蘇州']height2=data['重慶']height3=data['杭州']width=0.2plt.bar(x,height1,width,color='darkorange',edgecolor='grey',label='蘇州')plt.bar(x+width,height2,width,color='yellowgreen',edgecolor='grey',label='重慶')plt.bar(x+2*width,height3,width,color='skyblue',edgecolor='grey',label='杭州')fori,jinzip(x,height1):plt.text(i-0.1,j+50,j,color='r',size=12)fori,jinzip(x+width,height2):plt.text(i-0.1,j+50,j,color='r',size=12)fori,jinzip(x+2*width,height3):plt.text(i-0.1,j+50,j,color='r',size=12)plt.xticks(x+width,data.columns)plt.legend()plt.show()5.3繪制條形圖鞏固訓(xùn)練創(chuàng)建DataFrame數(shù)據(jù)data,data包含4行3列,記錄了蘇州、青島、廈門3個城市的GDP(單位:億元)。在3行1列的三個子圖中,分別繪制不同年份三個地區(qū)DGP條形圖,并比較其結(jié)果。練習(xí)數(shù)據(jù)源index蘇州重慶杭州2017年1700019530125562018年1869720363135002019年193002360515373參考代碼如下:importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']dict={'蘇州':[17000,18697,19300],'重慶':[19530,20363,23605],'杭州':[12556,13500,15373]}data=pd.DataFrame(dict,index=['2017年','2018年','2019年'])pd.set_option('display.unicode.east_asian_width',True)plt.rcParams['figure.figsize']=(30,20)fig=plt.figure()y=data.columnswidth1=data.iloc[0,:]width2=data.iloc[1,:]width3=data.iloc[2,:]ax1=fig.add_subplot(3,1,1)ax1.barh(y,width1,color='skyblue',edgecolor='b')ax1.set_title("2017年",color='r',size=15)ax2=fig.add_subplot(3,1,2)ax2.barh(y,width2,color='skyblue',edgecolor='b')ax2.set_title("2018年",color='r',size=15)ax3=fig.add_subplot(3,1,3)ax3.barh(y,width3,color='skyblue',edgecolor='b')ax3.set_title("2019年",color='r',size=15)plt.show()5.4繪制折線圖鞏固訓(xùn)練利用read_excel導(dǎo)入meal.xlsx(meal.xlsx存放在c:\data路徑中),完成:(1)從“開始時間”列中提取出小時,并存放在新列“小時”中。(2)根據(jù)小時進行分組,并計算不同小時的消費金額的平均值,并查看結(jié)果。(3)根據(jù)(2)的結(jié)果,繪制不同小時平均消費金額的折線圖,折線圖的線型為直線,顏色為藍色,標(biāo)題為“不同小時平均消費金額折線圖”。參考代碼如下:importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']pd.set_option('display.width',None)pd.set_option('display.unicode.east_asian_width',True)data=pd.read_excel("c:\data\meal.xls")data['開始時間']=pd.to_datetime(data['開始時間'])data['結(jié)束時間']=pd.to_datetime(data['結(jié)束時間'])data['hour']=data['開始時間'].dt.hourresult=data.groupby(by='hour')['消費金額'].mean()x=result.indexy=resultplt.plot(x,y,linestyle='-',color='b')plt.title("不同小時平均消費金額折線圖")plt.show()5.5繪制散點氣泡圖鞏固訓(xùn)練利用read_csv導(dǎo)入鳶尾花數(shù)據(jù)集iris.csv,繪制四列“Sep_len”、“Sep_wid”、“Pet_len”、“Pet_wid”的散點圖矩陣。參考代碼如下:importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltdata=pd.read_csv("c:\data\iris.csv",encoding='gbk')data=data.i

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論