




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Python數據分析基礎與應用模塊5Pandas數據預處理5.1Pandas數據清理5.1.1Pandas缺失值處理1.使用函數檢查缺失值Pandas提供了isnull()和notnull()兩個函數檢查缺失值,它們同時適用于Series和DataFrame對象。isnull()函數用來判斷元素是否為空,notnull()函數用來判斷元素是否不為空。isnull()函數的語法格式如下:isnuull(obj)或者obj.isnull()obj表示檢查缺失值的Series對象或者DataFrame對象。如果發現數據中存在缺失值,就將這個位置標記為True,否則就標記為False。5.1.1Pandas缺失值處理1.使用函數檢查缺失值notnull()函數的語法格式與isnull()函數類似,如果發現數據中有缺失值時返回False。Pandas還提供了any()函數和all()函數檢測行或者列,any()函數用來檢測行或者列的元素是否包含缺失值,如果行或列中的元素包含缺失值,則返回True,否則返加False。all()函數用來檢測行或者列中所有元素都不包含缺失值,如果行或列中的所有元素都不包含缺失值,則返回True,否則返加False。5.1.1Pandas缺失值處理2.使用fillna()函數填充缺失值Pandas提供了多種方法來清除缺失值,其中fillna()函數可以實現用非空數據“填充”NaN值。使用fillna()函數填充缺失值時,既可以使用標量、字典,也可以使用Series或DataFrame對象。fillna()函數的語法格式如下:fillna(value=None,method=None,axis=None,inplace=False,limit=None,downcast=Nome,**kwargs)5.1.1Pandas缺失值處理其主要函數參數說明如下:?value:用于填充的數值。?method:表示填充方式,默認為None。其取值如下:?pad/ffill:向前填充,即使用缺失值前面的一個非缺失值去填充該缺失值。?backfill/bfill:后向填充,即使用缺失值后面的一個非缺失值填充該缺失值。?None:指定一個值去替換缺失值。?axis:用于修改填充方向,默認值為axis=0,表示按列填充;如果設置為1,則表示按行填充。?inplace:該參數的取值為:True、False,默認值為False。如果該參數設置為True表示不創建副本,直接修改源對象;如果設置為False表示創建一個副本,只修改副本,源對象不變。?limit:用于限制填充個數,表示可以連續填充的最大數量,默認值為None。5.1.1Pandas缺失值處理3.使用函數值替換缺失數據Pandas使用mean()、median()和mode()函數計算列的均值(所有值加起來的平均值)、中位數值(排序后排在中間的數)和眾數(出現頻率最高的數)。然后使用這些函數的返回值替換缺失數據。計算某列數據之和時,處理缺失數據需要注意兩點:(1)數據求和時,將NA值視為0。(2)如果要計算的數據全為NA,那么結果就是NA。在某些情況下,需要使用replace()函數將DataFrame中的通用值替換成特定值,這和使用fillna()函數替換NaN值是類似的。5.1.1Pandas缺失值處理4.使用dropna()函數刪除缺失值(1)刪除至少包含1個缺失值的行(2)刪除至少包含1個缺失值的列(3)刪除所有元素都為缺失值的行(4)保留至少包含3個非空值的行(5)刪除指定列中值為空的行5.1.2Pandas清洗無效數據1.清洗格式錯誤數據數據格式錯誤會使數據分析變得困難,甚至不可能。可以將錯誤格式的數據轉換為相同格式的數據。2.清洗超出范圍的錯誤數據如果年齡數據超過了150,百分制考試成績超過了100分,顯然是錯誤數據,我們可以對錯誤的數據進行替換或移除。5.1.3Pandas重復值檢測與處理1.使用duplicated()函數判斷與標記重復值duplicated()函數用于標記Series中的值、DataFrame中的記錄行是否是重復,有重復則返回True,無重復則返回False。該函數返回一個由布爾值組成的Series對象,該對象的行索引保持不變,數據則變為標記是否為重復值的布爾值。duplicated()函數的語法格式如下:pandas.Series.duplicated(self,keep='first')pandas.DataFrame.duplicated(self,subset=None,keep='first')5.1.3Pandas重復值檢測與處理其函數參數說明如下:(1)subset:用于指定檢測重復的數據范圍,默認為數據集的所有列,可指定特定數據列。指定特定的列后,它僅檢測指定的列是否存在重復項。(2)keep:控制如何標記重復值。它有3個不同的取值:frist、last和False,默認值為“frist”。?keep='frist':表示從前向后查找,標記重復數據第一次出現為False,即除了第一次出現外,其余相同的值標記為重復值。?keep='last':表示從后向前查找,標記重復數據最后一次出現為False,即除了最后一次出現外,其余相同的值標記為重復值。?keep=False:標記所有重復數據為True,即所有相同的都被標記為重復。5.1.3Pandas重復值檢測與處理2.使用drop_duplicates()函數刪除重復值PandaDataFrame對象提供了一個去重函數drop_duplicates(),在識別出重復的數據后可以使用Pandas的drop_duplicate函數將其刪除,該函數的語法格式如下:pandas.DataFrame.drop_duplicates(subset=None,keep='first',inplace=False)或pandas.Series.drop_duplicates(keep='first',inplace=False)5.1.3Pandas重復值檢測與處理2.使用drop_duplicates()函數刪除重復值該函數參數說明如下:?subset:指定要去重的列名,默認為None。?keep:有3個可選參數,分別是first、last、False,默認為first,表示只保留第1次出現的重復項,刪除其余重復項,last表示只保留最后一次出現的重復項,False則表示刪除所有重復項。?inplace:為布爾值參數,默認值False表示刪除重復項后返回一個副本,若設置為Ture則表示直接在原數據上刪除重復項。5.1.4Pandas異常值檢測與處理1.基于3σ原則檢測異常值基于3σ原則檢測異常值具體步驟如下:(1)需要保證數據列大致上服從正態分布;(2)計算需要檢驗的數據列的平均值和標準差;(3)比較數據列的每個值與平均值的偏差是否超過3倍,如果超過3倍,則為異常值;(4)剔除異常值,得到規范的數據。5.1.4Pandas異常值檢測與處理2.認知箱形圖(1)箱形圖的基本組成與特征數據節點箱形圖(Box-plot)又稱為盒須圖、盒式圖或箱線圖,是一種用作顯示一組數據分散情況的統計圖。(2)熟知箱形圖的作用①識別數據的異常值②易于發現數據的偏態和尾重③能用于數據探索性分析,分析數據的形狀掃描二維碼,瀏覽箱形圖作用的具體介紹。Pandas提供了一個專門用來繪制箱型圖的boxplot()方法。5.1.4Pandas異常值檢測與處理3.基于箱形圖檢測與處理異常值從集合角度來看,異常值即離群點。因此,為了處理異常值,首先是判別數據集中是否存在離群點,哪些是異常值,然后再根據實際情況選擇如何處理異常值。檢測出異常值后,通常會采用如下方式處理這些異常值:?直接將含有異常值的記錄刪除?用具體的值來進行替換,可用前后兩個觀測值的平均值修正該異常值?將異常值視為缺失值,按照缺失值的處理方法修正該異常值?對異常值不處理,直接在具有異常值的數據集上進行統計分析5.1.4Pandas異常值檢測與處理異常數據被檢測出來之后,需要進一步確認他們是否為真正的異常值,等確認完以后再決定選用哪種方法進行解決。如果希望對異常值進行修改,則可以使用Pandas中replace()函數進行替換,該方法不僅可以對單個數據進行替換,也可以多個數據執行批量替換操作。replace()函數的語法格式如下:replace(to_replace=None,value=None,inplace=False,limit=None,regex=False,method=‘pad’)5.1.4Pandas異常值檢測與處理其部分函數參數說明如下:?to_replace:表示查找被替換值的方式。?value:用來替換任何匹配to_replace的值,默認值為None。?limit:表示前向或后向填充數據的最大范圍。?regex:表示是否將to_replace和value解釋為正則表達式,接收布爾值或與to_replace相同的類型,默認值為False。?method:表示替換時使用的方法,pad/ffill表示前向填充,bfill表示后向填充。5.1.4Pandas異常值檢測與處理3.處理異常值代碼如下:df.replace(to_replace=30,value=3)5.1.5Pandas刪除數據集中指定行或列的數據1.使用dropna()函數刪除缺失值如果想刪除缺失值,使用dropna()函數結合參數axis就可以實現。在默認情況下,按照axis=0來按行處理,這意味著如果某一行中存在NaN值將會刪除整行數據。dropna()函數的語法格式如下:DataFrame.dropna(axis=0,how='any',thresh=None,subset=None,inplace=False)5.1.5Pandas刪除數據集中指定行或列的數據1.使用dropna()函數刪除缺失值該函數參數說明如下:?axis:確定刪除的行或列,默認值為0,如果設置參數axis為0或者index,則表示刪除包含缺失值的整行;如果設置參數axis為1或者columns,則表示刪除包含缺失值的整列。?how:確定刪除行或列的標準,默認值為'any',如果一行或一列里任何一個數據有出現NaN就刪除整行或整列;如果設置how='all',則一行或一列數據全為NaN才刪除整行或整列。5.1.5Pandas刪除數據集中指定行或列的數據1.使用dropna()函數刪除缺失值?thresh:類型為int,表示有效數據數量的最小要求,設置需要多少非空值的數據才可以保留下來的,例如,如果設置為thresh=2,則表示該行或該列至少有兩個非NaN值時才將其予以保留。?subset:設置想要處理缺失值的列。如果是多個列,可以使用列名的list作為參數。?inplace:該參數為bool類型,表示是否修改源文件。如果設置為True,則表示直接修改源數據;如果設置為False,則表示返回數據集的副本,針對原數據的副本進行修改。5.1.5Pandas刪除數據集中指定行或列的數據2.使用drop()函數刪除指定行或列的數據使用drop()函數可以刪除指定行或列的數據,該數的語法格式如下:drop(labels,axis=0,level=None,inplace=False,errors='raise')5.1.5Pandas刪除數據集中指定行或列的數據該函數參數說明如下:?labels:接收字符串或數組,代表刪除的行或列的標簽,無默認值。?axis:axis設置為0時表示刪除行數據,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣東省惠州市惠城區中考數學二模試卷(含答案)
- 財務會計入門實操指南
- 高等土力學:本構模型
- 2025年android自學視頻!一起看看這些大廠面試真題查漏補缺吧分享一點面試小經驗
- 2023-2024學年山西省長治市部分學校高二下學期期末考試數學試題(解析版)
- 2025屆河南省許昌、平頂山、汝州名校高三二模語文試題(解析版)
- 2025屆福建省高三模擬練習聯合檢測語文試題(解析版)
- 2024屆湖南省益陽市七校高三下學期第二次模擬考試語文試題(解析版)
- 2024-2025學年浙江省湖州市高二上學期期末考試語文試題(解析版)
- 2024-2025學年山西省晉城市部分學校高二下學期開學檢測語文試題(解析版)
- 2025年家庭教育指導師資格考試試題及答案
- 2025至2030年中國速凍豆角行業投資前景及策略咨詢報告
- 2025年入黨積極分子培訓結業測試題及答案
- 人教版(2024)七年級下冊生物期末復習重點知識點提綱
- 2025年中考語文二輪復習:標點符號 專題練習題(含答案解析)
- 跌倒墜床防范試題及答案
- 2024-2025學年人教版(2024)初中英語七年級下冊(全冊)知識點歸納
- XXX社區居委會、業主委員會和物業管理機構三方聯席會議制度
- 三伏貼不良反應應急預案
- 簡陽市2024-2025學年五年級數學第二學期期末統考模擬試題含答案
- 2025年廣東省佛山市中考英語一模試卷
評論
0/150
提交評論