




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課題:項(xiàng)目5數(shù)據(jù)清洗與結(jié)構(gòu)化存儲(chǔ)第2部分處理清洗數(shù)據(jù)課次:第15次
教學(xué)目標(biāo)及要求:
任務(wù)1處理數(shù)據(jù)缺失(熟練掌握)
任務(wù)2規(guī)范化數(shù)據(jù)(熟練掌握)
任務(wù)3處理數(shù)據(jù)表結(jié)構(gòu)錯(cuò)誤(熟練掌握)
任務(wù)4處理日期數(shù)據(jù)錯(cuò)誤(熟練掌握)
教學(xué)重點(diǎn):
任務(wù)1處理數(shù)據(jù)缺失(熟練掌握)
任務(wù)2規(guī)范化數(shù)據(jù)(熟練掌握)
任務(wù)3處理數(shù)據(jù)表結(jié)構(gòu)錯(cuò)誤(熟練掌握)
任務(wù)4處理日期數(shù)據(jù)錯(cuò)誤(熟練掌握)
教學(xué)難點(diǎn):
任務(wù)1處理數(shù)據(jù)缺失(熟練掌握)
任務(wù)2規(guī)范化數(shù)據(jù)(熟練掌握)
任務(wù)3處理數(shù)據(jù)表結(jié)構(gòu)錯(cuò)誤(熟練掌握)
任務(wù)4處理日期數(shù)據(jù)錯(cuò)誤(熟練掌握)
思政主題:
教學(xué)步驟及內(nèi)容:旁批欄:
1.課程引入
數(shù)據(jù)存在哪些問題,如何把數(shù)據(jù)的問題解決,是數(shù)據(jù)清洗的關(guān)鍵步驟,
下面我們來(lái)學(xué)習(xí)下幾個(gè)方面。
2.本次課學(xué)習(xí)內(nèi)容、重難點(diǎn)及學(xué)習(xí)要求介紹
任務(wù)1處理數(shù)據(jù)缺失(熟練掌握)
任務(wù)2規(guī)范化數(shù)據(jù)(熟練掌握)
任務(wù)3處理數(shù)據(jù)表結(jié)構(gòu)錯(cuò)誤(熟練掌握)
任務(wù)4處理日期數(shù)據(jù)錯(cuò)誤(熟練掌握)
3.本次課的教學(xué)內(nèi)容
任務(wù)1處理數(shù)據(jù)缺失(熟練掌握)
1.數(shù)據(jù)缺失產(chǎn)生的原因
(1)在數(shù)據(jù)填寫時(shí)漏填、錯(cuò)填、沒有填寫
(2)填寫的數(shù)據(jù)時(shí)錯(cuò)誤數(shù)據(jù)無(wú)法使用
(3)數(shù)據(jù)計(jì)算錯(cuò)誤導(dǎo)致數(shù)據(jù)錯(cuò)誤
2.數(shù)據(jù)缺失處理的方法
(1)為缺失數(shù)據(jù)賦值:根據(jù)業(yè)務(wù)實(shí)際情況,賦予相應(yīng)的近似值。比如
賦予平均值、中值、臨近值或者根據(jù)計(jì)算而得來(lái)的值,比如:通過身份證號(hào)
計(jì)算年齡等。
(2)去掉/刪除缺失數(shù)據(jù)行:由于數(shù)據(jù)關(guān)鍵信息的缺失,該行數(shù)據(jù)失效,
則需要?jiǎng)h除該行記錄,以免影響整體結(jié)果。
(3)去掉/刪除缺失率高的列:由于某列數(shù)據(jù)缺失率較高,內(nèi)容無(wú)法使
用,而列數(shù)據(jù)不會(huì)影響整體分析情況,則刪除此列。如該列是關(guān)鍵列,則需
要使用其他手段重新獲取數(shù)據(jù)信息。
我們應(yīng)該去掉那些不友好的NaN(NotaNumber)值。我們檢查一下
“color”列。這一列非常簡(jiǎn)單,然而有些數(shù)據(jù)的值是NaN。在我們的案例中,
我們推斷color并不是很重要,所以,我們可是使用“”空字符串或其他默認(rèn)
值。如下表所示:
數(shù)據(jù)缺失處理方法主要是刪除不完整的行-刪除包含任意NaN的行
刪除一整行的值都為NA的數(shù)據(jù)、有條件刪除,代碼如下
刪除一整列都為NA的列、刪除任何包含空值的列、同理可以像行的操
作一樣,使用threshold和subset
任務(wù)2規(guī)范化數(shù)據(jù)(熟練掌握)
1.數(shù)據(jù)不規(guī)范的原因
1)在數(shù)據(jù)轉(zhuǎn)化時(shí)數(shù)據(jù)格式錯(cuò)誤:比如原本為float類型的數(shù)據(jù),在轉(zhuǎn)過
程中變?yōu)榱俗址愋汀?/p>
2)錯(cuò)別字:在用戶輸入的時(shí)候,一時(shí)大意寫出來(lái)錯(cuò)別字。
3)英文單詞大小寫不統(tǒng)一。
4)空格:輸入了額外的空格。
5)非ASCII字符。
2.數(shù)據(jù)不規(guī)范的處理方式
1)格式轉(zhuǎn)化:把數(shù)據(jù)作類型轉(zhuǎn)換。
2)必要轉(zhuǎn)換:針對(duì)不同的情況進(jìn)行相應(yīng)轉(zhuǎn)換。如:英語(yǔ)單詞做大小寫
轉(zhuǎn)換。
3.數(shù)據(jù)不規(guī)范的處理方式實(shí)現(xiàn)
1)格式轉(zhuǎn)化
有的時(shí)候,尤其當(dāng)我們讀取CSV中一串?dāng)?shù)字的時(shí)候,有的時(shí)候數(shù)值類
型的數(shù)字被讀成字符串的數(shù)字,或?qū)⒆址臄?shù)字讀成數(shù)據(jù)值類型的數(shù)字。
Pandas還是提供了規(guī)范化我們數(shù)據(jù)類型的方式。
我們可以在讀入的時(shí)候傳入一個(gè)dtype參數(shù),參數(shù)接收字典類型,代碼
如下:
這里我們使用head。方法來(lái)輸出前5行
注意head。的位置,我將他寫在了不同的位置,但運(yùn)行都正確。
2)去除空格
去除空格使用strip。函數(shù),比如,去除movie_title列中的空格,代碼如
下所示:
3)非ASCII字符
對(duì)于非ASCII字符我們可以使用替換或者刪除的方法對(duì)其進(jìn)行清洗。我
們可以使用正則表達(dá)式進(jìn)行清理。
replace方法內(nèi)使用了正則表達(dá)式,將正則表達(dá)式匹配到的內(nèi)容替換為
空regex=True代表我們使用了正則。
任務(wù)3處理數(shù)據(jù)表結(jié)構(gòu)錯(cuò)誤(熟練掌握)
本次使用的數(shù)據(jù)是patient_heart_rate.csv
部分內(nèi)容顯示如下:
1.存在問題
1)沒有列頭
2)一個(gè)列有多個(gè)參數(shù)
3)列數(shù)據(jù)的單位不統(tǒng)一
4)有些列頭應(yīng)該是數(shù)據(jù),而不是列名
5)列名中英文變換
2.數(shù)據(jù)表結(jié)構(gòu)錯(cuò)誤的清洗方法
1)添加或者拆分列頭
2)單位轉(zhuǎn)換
3)重復(fù)行
4)列頭行列轉(zhuǎn)換
5)列頭中英文轉(zhuǎn)換
(1)沒有列頭:讀入數(shù)據(jù)的時(shí)候給數(shù)據(jù)添加列頭,具體代碼如下:
僅需要定義一個(gè)列表column_names來(lái)指定列名,然后在讀取時(shí),賦值
給names參數(shù)。
如上圖所示,name列包含了兩個(gè)參數(shù)Firtname和Lastnameo為了達(dá)
到數(shù)據(jù)整潔目的,我們決定將name列拆分成Firstname和Lastname。
我們使用如下代碼:
第3行,我們定義了firstname,lastname并將data「name']分割后的值
賦給它們
第4行,data.drop('name',axis=l,inplace=True)第一個(gè)參數(shù)是要drop掉
的列名,第二個(gè)參數(shù)是說(shuō)操作的是“列”,第三個(gè)參數(shù)是inplace是說(shuō)是否在
data變量?jī)?nèi)進(jìn)行數(shù)據(jù)的drop操作。前面提到過,我們說(shuō)drop的結(jié)果需要定
義一個(gè)df變量來(lái)接收,如果不想定義變量來(lái)接收,那么我們可以經(jīng)inplace
設(shè)成True。
首先我們校驗(yàn)一下是否存在重復(fù)記錄。如果存在重復(fù)記錄,就使用
Pandas提供的drop_duplicates()來(lái)刪除重復(fù)。具體代碼如下:
可以看出名字HueyMcDuck重復(fù)的數(shù)據(jù)已經(jīng)被刪除。
從上圖可以看出,weight列的單位是不一致的。有kgs和lbs。我們
需要統(tǒng)一單位。代碼如下:
1到5行是以前的代碼
第6行做了件什么事呢?首先找出weight列中包含lbs的數(shù)據(jù),并填充
為Flase
填充為False有什么用呢?如果我們將rows_with_lbs變量打印出來(lái)就
會(huì)得到如下結(jié)果1的結(jié)果。也即是說(shuō)如果包含lbs就返回True并且,如
果將data[rows_with_lbs]打印出來(lái),就會(huì)得到下結(jié)果2中的1的結(jié)果。
第8行,通過iterrows。方法,得到迭代器,利用For循環(huán)依次處理,
將lbs轉(zhuǎn)換為kgs第10行,利用at,將第i個(gè)位置的weight列的數(shù)據(jù)重新
賦值。
有一些列頭是有性別和時(shí)間范圍組成的,這些數(shù)據(jù)有可能是在處理收集
的過程中進(jìn)行了行列轉(zhuǎn)換,或者收集器的固定命名規(guī)則。這些值應(yīng)該被分
解為性別小時(shí)單位的時(shí)間范圍(00-06,06-12,12-18)
有的時(shí)候我們使用英文的列頭大家容易看起來(lái)不方便,我們需要將其轉(zhuǎn)
換成為中文列頭,我們需要使用后rename。函數(shù)。
任務(wù)4處理日期數(shù)據(jù)錯(cuò)誤(熟練掌握)
Date列數(shù)據(jù),除了年份是范圍外,還有三種非正常格式。下面我們將
這幾種列出來(lái):
(1)時(shí)間存在范圍:如:“1976-77”
(2)估計(jì)的值:如“c.1917”,“1917年前后”
(3)缺失數(shù)據(jù):如"Unknown”
(4)無(wú)意義數(shù)據(jù):如“nd”
接下來(lái)我們會(huì)處理上面的每一個(gè)問題,使用Pandas將這些不規(guī)則的數(shù)
據(jù)轉(zhuǎn)換為統(tǒng)一格式的數(shù)據(jù)。(1)和(2)是有數(shù)據(jù)的只是格式上欠妥當(dāng),
(3)和(4)實(shí)際上不是有效數(shù)據(jù)。針對(duì)前兩個(gè)問題,我們可以通過代碼將
據(jù)格式化來(lái)達(dá)到清洗的目的,而后兩個(gè)問題,代碼上只能將其作為缺失值來(lái)
處理。簡(jiǎn)單起見,我們將(3)和(4)的數(shù)據(jù)處理為0。
數(shù)據(jù)都是兩個(gè)年時(shí)間范圍,我們選擇其中的一個(gè)年份作為清洗之后的數(shù)
據(jù)。為了簡(jiǎn)單起見,我們就使用開始的時(shí)間來(lái)替換這樣問題的數(shù)據(jù),因?yàn)檫@
個(gè)時(shí)間是一個(gè)四位數(shù)的數(shù)字,如果要使用結(jié)束的年份,我們還栗補(bǔ)齊前兩位
的數(shù)字。
我們要處理的時(shí)間范圍的數(shù)據(jù),其中包含有這樣我們就可以通過
這個(gè)特殊的字符串來(lái)過濾我們要處理的數(shù)據(jù),然后通過splito利用將數(shù)
據(jù)分割,將結(jié)果的第一部分作為處理的最終結(jié)果。
數(shù)據(jù)本身不準(zhǔn)確性,是一個(gè)估計(jì)的年份時(shí)間,我們將其轉(zhuǎn)換為年份,那
么,就只要
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政機(jī)關(guān)單位房租租賃合同
- 2025年教師多媒體培訓(xùn)計(jì)劃:打造高質(zhì)量教育體系的關(guān)鍵
- 校本培訓(xùn)個(gè)人工作總結(jié)
- 企業(yè)出納專員崗位職責(zé)與工作內(nèi)容(30篇)
- 夏令營(yíng)開營(yíng)講話稿(4篇)
- 2025年小學(xué)英語(yǔ)教學(xué)研討會(huì):微型課教案研究
- 養(yǎng)貓藥品知識(shí)培訓(xùn)課件
- 2025年宏觀經(jīng)濟(jì)學(xué)課件模板
- 物流系統(tǒng)分析 課件 任務(wù)四 認(rèn)識(shí)物流系統(tǒng)的要素
- 2023年天津卷高考真題數(shù)學(xué)試卷
- 《建筑工程施工許可管理辦法》2021年9月28日修訂
- 普通話培訓(xùn)教案1(共5篇)
- 大慶醫(yī)學(xué)高等專科學(xué)校單招參考試題庫(kù)(含答案)
- 國(guó)有企業(yè)內(nèi)部控制的問題與改進(jìn)措施
- 綿陽(yáng)市三臺(tái)縣鄉(xiāng)鎮(zhèn)地圖矢量可編輯課件行政區(qū)劃邊界高清(四川省)
- 新疆城市綠地養(yǎng)護(hù)管理標(biāo)準(zhǔn)
- 幼兒園故事繪本《賣火柴的小女孩兒》課件
- 妊娠期高血壓疾病試題
- 《高速公路機(jī)電系統(tǒng)集成與維護(hù)》課件-05.高速公路監(jiān)控系統(tǒng)
- 工資條員工工資明細(xì)表模板
- 網(wǎng)絡(luò)故障分析報(bào)告模板
評(píng)論
0/150
提交評(píng)論