3-python-數據清洗模塊簡介_第1頁
3-python-數據清洗模塊簡介_第2頁
3-python-數據清洗模塊簡介_第3頁
3-python-數據清洗模塊簡介_第4頁
3-python-數據清洗模塊簡介_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Python基礎知識西南財經大學

管理科學與工程學院王俊目錄一、讀取數據,預處理數據集二、識別并處理缺失值三、識別并處理異常值四、識別并處理重復值

一、讀取數據,預處理數據集

臟數據由于記錄或者儲存的原因,導致部分數據缺失、重復、異常、錯誤,沒有分析意義,就叫做“臟數據”。數據清洗把“臟數據”識別出來,并進行刪除、填補、修正等一系列處理的過程,就叫做“數據清洗”。

一、讀取數據,預處理數據集

缺失值由于記錄或讀取的原因,在應該有數據的地方,出現了空白,這就是缺失值。缺失值在一個DataFrame中,會被標記為NaN或者null。異常值指的是不合理的數據。需要根據具體的案例,進行判斷。例如:在應該全是正數的數據中,出現了負數;在應該全是非零值的數據中,出現了0;出現了不可能出現的數值等等。重復值指的是在不該重復的地方,出現了異常的重復。比如,在某銷售數據集中,訂單號order_id應該是唯一的。而當出現了重復的訂單號,這就是異常的重復。

二、識別并處理缺失值

1.識別缺失值在pandas中,檢查缺失值,我們可以使用info()函數,判斷哪一列存在缺失值。

然后,再使用isnull()函數,判斷缺失值是在這一列的哪一行,從而實現定位。(1)info()函數輸出后快速瀏覽數據集。info()函數會直接將結果輸出出來,因此我們不需要用print。

import

pandas

as

pddf

=

pd.read_csv(路徑)df['pay_time']

=

pd.to_datetime(df['pay_time'])#數據預處理()#

輸出(),快速瀏覽數據集二、識別并處理缺失值(1)info()函數我們可以看到,這組數據其他列一共有78049行的非空數據。

但platform這一列僅有77645行非空數據。說明在這一列,有384個缺失值。

payment_provider這一列僅有78029行非空數據。說明在這一列,有20個缺失值。二、識別并處理缺失值(2)isnull()函數info()函數,可以幫助我們定位哪些列存在空值。isnull()函數可以在一列中,找到哪一行是空值。isnull()函數會對每一個數據是否為缺失值進行判斷。缺失值返回為True,不是缺失值返回為False。從而生成一列布爾類型的Series。值是True的地方,就是缺失值所在的地方。print(df['platform'].isnull())二、識別并處理缺失值2.處理缺失值缺失值的處理,有3種方式:

刪除所在行;補全缺失值;重選數據集。(1)刪除所在行如果缺失值的數量非常少,我們可以選擇將缺失值所在的這一行刪除。例如7.8萬行數據中,僅僅有400多個缺失值時,刪除對于分析不構成決定性影響。在刪除有缺失值的那一行數據時,會用到drop()函數。drop(index=,axis=,inplace=)index表示刪除條件;axis=1刪除某列,axis=0刪除某行;inplace默認情況下為False,表示原數據不變,True表示在原來的數據上改變。二、識別并處理缺失值例:數據清洗(刪除某行)#先將缺失值識別出來,并建立一個新的數據集(該數據集使用isnull函數識別空值后,將空值自動返回True)dfPayNull=df[df[‘payment_provider’].isnull()]

#再刪除df.drop(index=dfPayNull.index,inplace=True)或者:df.drop(dfPayNull.index,inplace=True)二、識別并處理缺失值例:數據清洗(刪除某行)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二、識別并處理缺失值例:數據清洗(刪除某行)import

pandas

as

pd

data=pd.read_excel('E:\python

code\machine

learning\cluster\kmeans\data\G.xlsx')print(data)#1:打印原始數據data_NUll=data[data['2019年'].isnull()]print(data_NUll)#2:刪選缺失值值所在行data.drop(index=data_NUll.index,inplace=True)print(data)#3:刪除缺失值所在行#1#2#3二、識別并處理缺失值例: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二、識別并處理缺失值(2)補全缺失值如果缺失值的數量較多,并且缺失值所在的這一列(這一個屬性),并不是我們分析的重點時,可以對缺失值進行補全。因為數量較大,直接刪除會缺失很多數據,讓數據變得不完整,也就會喪失其中的一些規律。在pandas中,補全數據我們會使用到fillna()函數。df[‘columns’].fillna(“XXX",inplace=)

columns:需要補全的列XXX:補的內容inplace默認情況下為False,表示原數據不變,True表示在原來的數據上改變。例:數據清洗(補全缺失值)df[‘payment_provider’].fillna(“wxpay”,inplace=True)#將ayment_provider列中缺失的數據,補全為“wxpay”

二、識別并處理缺失值(3)重選數據集如果缺失值的數量較多,并且這一列,這個屬性是分析的重點時。那么我們就需要直接放棄這個數據集,重新采集數據。因為缺失值較多,會丟失數據的原貌。刪除后剩下的數據就喪失了統計的意義。也無法補全,因此需要重新采集數據。三、識別并處理異常值異常值面對異常值,我們通常需要挨個進行檢查,并處理,以確保數據清洗的有效性。1.識別異常值(1)函數isin(),對列對象執行判斷:列對象的元素,是否在傳入isin()中的元素中。如果是,則返回True;如果不是,就返回False。使用一個~運算符,作用是取反。print(df['columns'].isin([XX,XX]))columns:需要判斷的列對象XX:需要判斷的元素例:print(~df[‘price’].isin([25.00,68.00,248.00]))#打印判斷price列中是否存在25.00,68.00,248.00這樣的元素,如果不存在,返回True(使用了~取反),并且打印出來

三、識別并處理異常值(2)使用布爾索引進行判斷2.處理異常值drop()函數等

四、識別并處理重復值

重復值:指的是異常的重復情況duplicated()函數,判斷重復的機制:是會把出現相同值的第二個及以后的數據,判斷為True。這樣,保證每個數據都保留一個唯一值。例:print(df['order_id'].duplicated())

溫馨提示

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

評論

0/150

提交評論