版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python基礎(chǔ)知識(shí)西南財(cái)經(jīng)大學(xué)
管理科學(xué)與工程學(xué)院王俊目錄一、讀取數(shù)據(jù),預(yù)處理數(shù)據(jù)集二、識(shí)別并處理缺失值三、識(shí)別并處理異常值四、識(shí)別并處理重復(fù)值
一、讀取數(shù)據(jù),預(yù)處理數(shù)據(jù)集
臟數(shù)據(jù)由于記錄或者儲(chǔ)存的原因,導(dǎo)致部分?jǐn)?shù)據(jù)缺失、重復(fù)、異常、錯(cuò)誤,沒有分析意義,就叫做“臟數(shù)據(jù)”。數(shù)據(jù)清洗把“臟數(shù)據(jù)”識(shí)別出來,并進(jìn)行刪除、填補(bǔ)、修正等一系列處理的過程,就叫做“數(shù)據(jù)清洗”。
一、讀取數(shù)據(jù),預(yù)處理數(shù)據(jù)集
缺失值由于記錄或讀取的原因,在應(yīng)該有數(shù)據(jù)的地方,出現(xiàn)了空白,這就是缺失值。缺失值在一個(gè)DataFrame中,會(huì)被標(biāo)記為NaN或者null。異常值指的是不合理的數(shù)據(jù)。需要根據(jù)具體的案例,進(jìn)行判斷。例如:在應(yīng)該全是正數(shù)的數(shù)據(jù)中,出現(xiàn)了負(fù)數(shù);在應(yīng)該全是非零值的數(shù)據(jù)中,出現(xiàn)了0;出現(xiàn)了不可能出現(xiàn)的數(shù)值等等。重復(fù)值指的是在不該重復(fù)的地方,出現(xiàn)了異常的重復(fù)。比如,在某銷售數(shù)據(jù)集中,訂單號(hào)order_id應(yīng)該是唯一的。而當(dāng)出現(xiàn)了重復(fù)的訂單號(hào),這就是異常的重復(fù)。
二、識(shí)別并處理缺失值
1.識(shí)別缺失值在pandas中,檢查缺失值,我們可以使用info()函數(shù),判斷哪一列存在缺失值。
然后,再使用isnull()函數(shù),判斷缺失值是在這一列的哪一行,從而實(shí)現(xiàn)定位。(1)info()函數(shù)輸出后快速瀏覽數(shù)據(jù)集。info()函數(shù)會(huì)直接將結(jié)果輸出出來,因此我們不需要用print。
import
pandas
as
pddf
=
pd.read_csv(路徑)df['pay_time']
=
pd.to_datetime(df['pay_time'])#數(shù)據(jù)預(yù)處理()#
輸出(),快速瀏覽數(shù)據(jù)集二、識(shí)別并處理缺失值(1)info()函數(shù)我們可以看到,這組數(shù)據(jù)其他列一共有78049行的非空數(shù)據(jù)。
但platform這一列僅有77645行非空數(shù)據(jù)。說明在這一列,有384個(gè)缺失值。
payment_provider這一列僅有78029行非空數(shù)據(jù)。說明在這一列,有20個(gè)缺失值。二、識(shí)別并處理缺失值(2)isnull()函數(shù)info()函數(shù),可以幫助我們定位哪些列存在空值。isnull()函數(shù)可以在一列中,找到哪一行是空值。isnull()函數(shù)會(huì)對(duì)每一個(gè)數(shù)據(jù)是否為缺失值進(jìn)行判斷。缺失值返回為True,不是缺失值返回為False。從而生成一列布爾類型的Series。值是True的地方,就是缺失值所在的地方。print(df['platform'].isnull())二、識(shí)別并處理缺失值2.處理缺失值缺失值的處理,有3種方式:
刪除所在行;補(bǔ)全缺失值;重選數(shù)據(jù)集。(1)刪除所在行如果缺失值的數(shù)量非常少,我們可以選擇將缺失值所在的這一行刪除。例如7.8萬行數(shù)據(jù)中,僅僅有400多個(gè)缺失值時(shí),刪除對(duì)于分析不構(gòu)成決定性影響。在刪除有缺失值的那一行數(shù)據(jù)時(shí),會(huì)用到drop()函數(shù)。drop(index=,axis=,inplace=)index表示刪除條件;axis=1刪除某列,axis=0刪除某行;inplace默認(rèn)情況下為False,表示原數(shù)據(jù)不變,True表示在原來的數(shù)據(jù)上改變。二、識(shí)別并處理缺失值例:數(shù)據(jù)清洗(刪除某行)#先將缺失值識(shí)別出來,并建立一個(gè)新的數(shù)據(jù)集(該數(shù)據(jù)集使用isnull函數(shù)識(shí)別空值后,將空值自動(dòng)返回True)dfPayNull=df[df[‘payment_provider’].isnull()]
#再刪除df.drop(index=dfPayNull.index,inplace=True)或者:df.drop(dfPayNull.index,inplace=True)二、識(shí)別并處理缺失值例:數(shù)據(jù)清洗(刪除某行)import
pandas
as
pd
data=pd.read_excel('E:\python
code\machine
learning\cluster\kmeans\data\G.xlsx')print(data)#1data_NUll=data[data['2019年'].isnull()]print(data_NUll)#2data.drop(index=data_NUll.index,inplace=True)print(data)#3#1二、識(shí)別并處理缺失值例:數(shù)據(jù)清洗(刪除某行)import
pandas
as
pd
data=pd.read_excel('E:\python
code\machine
learning\cluster\kmeans\data\G.xlsx')print(data)#1:打印原始數(shù)據(jù)data_NUll=data[data['2019年'].isnull()]print(data_NUll)#2:刪選缺失值值所在行data.drop(index=data_NUll.index,inplace=True)print(data)#3:刪除缺失值所在行#1#2#3二、識(shí)別并處理缺失值例:import
pandas
as
pddata={'A':[1,2,3,4],"B":[3,5,7,8],"C":[5,6,8,9],"D":[2,4,7,9]}df=pd.DataFrame(data)print(df)#1
df.drop(“A”,axis=1,inplace=True)#刪除列(列固定之后,刪除每一行)print(df)#2df.drop(1,axis=0,inplace=True)#刪除行(行固定之后,刪除每一列)print(df)#3123二、識(shí)別并處理缺失值(2)補(bǔ)全缺失值如果缺失值的數(shù)量較多,并且缺失值所在的這一列(這一個(gè)屬性),并不是我們分析的重點(diǎn)時(shí),可以對(duì)缺失值進(jìn)行補(bǔ)全。因?yàn)閿?shù)量較大,直接刪除會(huì)缺失很多數(shù)據(jù),讓數(shù)據(jù)變得不完整,也就會(huì)喪失其中的一些規(guī)律。在pandas中,補(bǔ)全數(shù)據(jù)我們會(huì)使用到fillna()函數(shù)。df[‘columns’].fillna(“XXX",inplace=)
columns:需要補(bǔ)全的列XXX:補(bǔ)的內(nèi)容inplace默認(rèn)情況下為False,表示原數(shù)據(jù)不變,True表示在原來的數(shù)據(jù)上改變。例:數(shù)據(jù)清洗(補(bǔ)全缺失值)df[‘payment_provider’].fillna(“wxpay”,inplace=True)#將ayment_provider列中缺失的數(shù)據(jù),補(bǔ)全為“wxpay”
二、識(shí)別并處理缺失值(3)重選數(shù)據(jù)集如果缺失值的數(shù)量較多,并且這一列,這個(gè)屬性是分析的重點(diǎn)時(shí)。那么我們就需要直接放棄這個(gè)數(shù)據(jù)集,重新采集數(shù)據(jù)。因?yàn)槿笔е递^多,會(huì)丟失數(shù)據(jù)的原貌。刪除后剩下的數(shù)據(jù)就喪失了統(tǒng)計(jì)的意義。也無法補(bǔ)全,因此需要重新采集數(shù)據(jù)。三、識(shí)別并處理異常值異常值面對(duì)異常值,我們通常需要挨個(gè)進(jìn)行檢查,并處理,以確保數(shù)據(jù)清洗的有效性。1.識(shí)別異常值(1)函數(shù)isin(),對(duì)列對(duì)象執(zhí)行判斷:列對(duì)象的元素,是否在傳入isin()中的元素中。如果是,則返回True;如果不是,就返回False。使用一個(gè)~運(yùn)算符,作用是取反。print(df['columns'].isin([XX,XX]))columns:需要判斷的列對(duì)象XX:需要判斷的元素例:print(~df[‘price’].isin([25.00,68.00,248.00]))#打印判斷price列中是否存在25.00,68.00,248.00這樣的元素,如果不存在,返回True(使用了~取反),并且打印出來
三、識(shí)別并處理異常值(2)使用布爾索引進(jìn)行判斷2.處理異常值drop()函數(shù)等
四、識(shí)別并處理重復(fù)值
重復(fù)值:指的是異常的重復(fù)情況duplicated()函數(shù),判斷重復(fù)的機(jī)制:是會(huì)把出現(xiàn)相同值的第二個(gè)及以后的數(shù)據(jù),判斷為True。這樣,保證每個(gè)數(shù)據(jù)都保留一個(gè)唯一值。例:print(df['order_id'].duplicated())
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東財(cái)貿(mào)職業(yè)學(xué)院《工程荷載與可靠度設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《客戶細(xì)分》課件
- 廣東碧桂園職業(yè)學(xué)院《餐飲經(jīng)營與管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 《民法學(xué)課件》課件
- 贛南醫(yī)學(xué)院《稅收籌劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛南衛(wèi)生健康職業(yè)學(xué)院《混凝土與砌體結(jié)構(gòu)設(shè)計(jì)B》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛南科技學(xué)院《社會(huì)工作專業(yè)論文寫作》2023-2024學(xué)年第一學(xué)期期末試卷
- 司機(jī)培訓(xùn)課件內(nèi)容
- 《生兒肺透明膜病》課件
- 七年級(jí)語文上冊(cè)第五單元?jiǎng)游锸澜?8狼高效教案新人教版
- 2023-2024學(xué)年山東省濰坊市高新區(qū)六年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 彈性模量自動(dòng)生成記錄
- 老年癡呆患者安全護(hù)理
- 2024年教師師德師風(fēng)工作計(jì)劃(2篇)
- 物流行業(yè)服務(wù)質(zhì)量保障制度
- 養(yǎng)老院物資采購流程及制度
- 眼鏡店年終總結(jié)及計(jì)劃
- 汽車行走的藝術(shù)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 一年級(jí)新生家長(zhǎng)會(huì)課件(共25張課件)
- 廣東省東華高級(jí)中學(xué)2025屆高一上數(shù)學(xué)期末考試試題含解析
- 2025屆山東省菏澤市部分重點(diǎn)學(xué)校高一上數(shù)學(xué)期末統(tǒng)考模擬試題含解析
評(píng)論
0/150
提交評(píng)論