Python與機(jī)器學(xué)習(xí)(第2版)(微課版) 課件 1-02-數(shù)據(jù)集成任務(wù)實(shí)施_第1頁(yè)
Python與機(jī)器學(xué)習(xí)(第2版)(微課版) 課件 1-02-數(shù)據(jù)集成任務(wù)實(shí)施_第2頁(yè)
Python與機(jī)器學(xué)習(xí)(第2版)(微課版) 課件 1-02-數(shù)據(jù)集成任務(wù)實(shí)施_第3頁(yè)
Python與機(jī)器學(xué)習(xí)(第2版)(微課版) 課件 1-02-數(shù)據(jù)集成任務(wù)實(shí)施_第4頁(yè)
Python與機(jī)器學(xué)習(xí)(第2版)(微課版) 課件 1-02-數(shù)據(jù)集成任務(wù)實(shí)施_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

主講人:陳清華數(shù)據(jù)集成與處理任務(wù)實(shí)施【數(shù)據(jù)挖掘應(yīng)用】課程用餐數(shù)據(jù)異常分析掌握Numpy、Pandas等第三方包的基本使用;會(huì)使用Pandas數(shù)據(jù)分析工具進(jìn)行數(shù)據(jù)集成、數(shù)據(jù)映射、數(shù)據(jù)處理等操作;會(huì)應(yīng)用merge()、apply()等函數(shù)對(duì)用餐數(shù)據(jù)做加工與處理。能力目標(biāo)主要內(nèi)容任務(wù)工單引導(dǎo)問題任務(wù)評(píng)價(jià)標(biāo)準(zhǔn)任務(wù)解決方案代碼解析用餐數(shù)據(jù)集成與處理tips1.csv、tips2.csv教學(xué)難點(diǎn)任務(wù)工單基于獲得的數(shù)據(jù)集,使用Pandas中相應(yīng)的工具對(duì)sex、smoker、day列做數(shù)據(jù)映射;基于day、date列構(gòu)建特征;并對(duì)name、phone、totalbill、tip列做不同數(shù)據(jù)處理,將name列變成首字母大寫,隱藏phone列中間5位(第4至8位)數(shù)值,將totalbill、tip轉(zhuǎn)換成浮點(diǎn)型。任務(wù)概述

任務(wù)描述:

使用read_csv()從文件中讀取數(shù)據(jù)后,按兩個(gè)數(shù)據(jù)集的索引列做集成操作,并完成相應(yīng)的數(shù)據(jù)加工與處理。010010011001101010100100110110100101110101000100001011011101001010101101010011010010數(shù)據(jù)源tips1.csv、tips2.csv顯示結(jié)果

任務(wù)要求任務(wù)概述(1)什么是數(shù)據(jù)集成?數(shù)據(jù)集成常見的操作有哪些?(2)Pandas中對(duì)數(shù)據(jù)做合并、連接等操作的相關(guān)函數(shù)是什么?(3)Pandas中merge()函數(shù)有哪些參數(shù)?分別用來(lái)指定什么?(4)Pandas中用來(lái)構(gòu)造特征的函數(shù)有哪些?主要用途是什么?(5)Pandas中數(shù)據(jù)類型轉(zhuǎn)換函數(shù)有哪些?如何使用?”

問題引導(dǎo):任務(wù)概述

任務(wù)評(píng)價(jià):任務(wù)概述評(píng)價(jià)內(nèi)容評(píng)價(jià)要點(diǎn)分值分?jǐn)?shù)評(píng)定自我評(píng)價(jià)1.任務(wù)實(shí)施數(shù)據(jù)讀取與集成2分會(huì)讀取數(shù)據(jù)得1分,會(huì)正常合并數(shù)據(jù)得1分

數(shù)據(jù)映射2分會(huì)正確映射sex、smoker列得1分,能正確映射day列得1分

特征構(gòu)造2分能正確構(gòu)造是否工作日得1分,能正確構(gòu)造月份得1分

數(shù)據(jù)加工與處理3分首字母大寫正確得1分,能正確隱藏部分號(hào)碼得1分,能正確轉(zhuǎn)換費(fèi)用數(shù)據(jù)類型得1分

3.任務(wù)總結(jié)依據(jù)任務(wù)實(shí)施情況總結(jié)結(jié)論1分總結(jié)內(nèi)容切中本任務(wù)的重點(diǎn)要點(diǎn)得1分

合計(jì)10分

第1行:本文件用utf-8編碼,utf-8編碼支持多種文字,包括中文。第2行:導(dǎo)入pandas包,并給出別名pd。第3行:從tips1.csv文件中讀取數(shù)據(jù)#coding:utf-8importpandas

aspddf1=pd.read_csv("tips1.csv",index_col=0,header=0,names=['ID','sex','smoker','day','time','size','name','date','phone'])

df1.head()第4行:打印出前面幾條數(shù)據(jù),如果在pycharm中可使用print。任務(wù)解決方案(1)從“tips1.csv”中讀數(shù)據(jù)存入df1第5行:從tips2.csv文件中讀取數(shù)據(jù)df2=pd.read_csv("tips2.csv",index_col=0,header=0,names=['ID','bill','tip'],encoding='gbk')

df2.head()任務(wù)解決方案部分?jǐn)?shù)據(jù)顯示(2)從“tips2.csv”中讀數(shù)據(jù)存入df2任務(wù)解決方案第7行:按ID列對(duì)數(shù)據(jù)進(jìn)行合并df=df1.merge(df2,on='ID')

df.head()部分?jǐn)?shù)據(jù)顯示(3)df1+df2數(shù)據(jù)集成df第9行:導(dǎo)入numpy包,并給出別名np。第10行:對(duì)sex列做數(shù)據(jù)映射,男性編碼為1,女性為0。import

numpyasnpdf['sex2']=np.where(df['sex']=='Male',1,0)任務(wù)解決方案第12行:對(duì)smoker列做數(shù)據(jù)映射,,將是否吸煙轉(zhuǎn)化為1和0。df[‘smoker2’]=np.where(df[‘smoker‘]

=='Yes',1,0)days={'Mon':1,'Tues':2,'Wed':3,'Thur':4,'Fri':5,'Sat':6,'Sun':7}第13行:構(gòu)造一個(gè)星期字典days。第10行:對(duì)sex列做數(shù)據(jù)映射,男性編碼為1,女性為0。第12行:對(duì)smoker列做數(shù)據(jù)映射,,將是否吸煙轉(zhuǎn)化為1和0。第13行:構(gòu)造一個(gè)星期字典days。第9行:導(dǎo)入numpy包,并給出別名np。第10行:對(duì)sex列做數(shù)據(jù)映射,男性編碼為1,女性為0。(4)df數(shù)據(jù)預(yù)處理任務(wù)解決方案days={'Mon':1,'Tues':2,'Wed':3,'Thur':4,'Fri':5,'Sat':6,'Sun':7}第13行:構(gòu)造一個(gè)星期字典days。df['day2']=df['day'].apply(lambdax:days[x])第14行:對(duì)day列做數(shù)據(jù)映射,其中星期一映射為1,星期二為2,以此類推,存為day2。部分?jǐn)?shù)據(jù)顯示(4)df數(shù)據(jù)預(yù)處理第15行:構(gòu)造day3列:將day2中的星期幾轉(zhuǎn)換化是否工作日;df['day3']=np.where(df['day2']>5,0,1)第16、17行:構(gòu)造month列,從date列中抽取月份。任務(wù)解決方案第19行:處理phone列,隱藏phone列中電話號(hào)碼中間5位,變成*,存為phone2列。第18行:處理name列,實(shí)現(xiàn)首字母大寫;df['date']

=

pd.to_datetime(df['date'],format="%Y-%m-%d",

errors

=

'coerce’)df['month']=df['date'].dt.monthdf['name']

=df['name'].map(str.capitalize)df['phone2']

=

df['phone'].astype(str).map(lambda

x:x.replace(x[3:8],"*****"))(4)df數(shù)據(jù)預(yù)處理第20、21行:處理bill、tip列中美元,并將其轉(zhuǎn)化為浮點(diǎn)型:方式一,采用字符串替換的方式df['bill2’]=df['bill'].astype(str).apply(lambdax:float(x.replace("美元","")))df['tip2’]=df['tip'].astype(str).apply(lambdax:float(x.replace("美元","")))第22、23行:方式二,采用數(shù)據(jù)抽取的方式任務(wù)解決方案df['bill3']

=

df['bill'].str.slice(0,-2).astype(float)df['tip3']

=

df['tip'].str.slice(0,-2).astype(float)部分?jǐn)?shù)據(jù)顯示(4)df數(shù)據(jù)預(yù)處理任務(wù)解決方案df

=

df1.merge(df2,on='ID’)

df

=

df1.join(df2.set_index('ID'),on='ID',how

=

'outer’)df1.combine_first(df2)pandas.to_datetime(dateString,format)

代碼解析:在pandas中,通過兩個(gè)數(shù)據(jù)集上一個(gè)或多個(gè)鍵來(lái)合并數(shù)據(jù)時(shí),可使用merge()函數(shù)。使用join()函數(shù)來(lái)實(shí)現(xiàn)根據(jù)特定的列和索引進(jìn)行合并數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論