數(shù)據(jù)清洗預(yù)處理操作手冊_第1頁
數(shù)據(jù)清洗預(yù)處理操作手冊_第2頁
數(shù)據(jù)清洗預(yù)處理操作手冊_第3頁
數(shù)據(jù)清洗預(yù)處理操作手冊_第4頁
數(shù)據(jù)清洗預(yù)處理操作手冊_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)清洗預(yù)處理操作手冊第一章數(shù)據(jù)清洗預(yù)處理概述1.1數(shù)據(jù)清洗預(yù)處理的定義數(shù)據(jù)清洗預(yù)處理是指在數(shù)據(jù)分析、建?;驊?yīng)用之前,對原始數(shù)據(jù)進行系統(tǒng)性檢查、清理、轉(zhuǎn)換和標準化操作的過程。其核心目標是解決數(shù)據(jù)質(zhì)量問題,保證數(shù)據(jù)準確性、一致性、完整性和適用性,為后續(xù)分析或建模提供高質(zhì)量數(shù)據(jù)基礎(chǔ)。1.2數(shù)據(jù)清洗預(yù)處理的重要性原始數(shù)據(jù)常因采集設(shè)備故障、錄入錯誤、系統(tǒng)漏洞或業(yè)務(wù)規(guī)則沖突等問題存在質(zhì)量缺陷,具體表現(xiàn)為:缺失值:關(guān)鍵字段數(shù)據(jù)缺失,導(dǎo)致分析偏差;異常值:偏離正常范圍的極端值,干擾模型訓(xùn)練;重復(fù)值:重復(fù)記錄導(dǎo)致統(tǒng)計結(jié)果失真;格式不一致:不同來源數(shù)據(jù)格式不統(tǒng)一(如日期格式“2023-01-01”與“01/01/2023”),無法直接關(guān)聯(lián);邏輯矛盾:數(shù)據(jù)間存在業(yè)務(wù)邏輯沖突(如用戶年齡為150歲)。這些問題若不處理,將直接導(dǎo)致分析結(jié)論錯誤、模型功能下降或決策失誤。例如電商平臺的用戶消費數(shù)據(jù)若存在異常高值,可能誤判為“高價值用戶”,導(dǎo)致營銷資源浪費。1.3數(shù)據(jù)清洗預(yù)處理的流程框架數(shù)據(jù)清洗預(yù)處理需遵循“先理解、再處理、后驗證”的邏輯,核心流程包括:數(shù)據(jù)理解:明確數(shù)據(jù)來源、業(yè)務(wù)含義及結(jié)構(gòu);質(zhì)量評估:識別數(shù)據(jù)質(zhì)量問題及分布特征;問題處理:針對缺失值、異常值等問題執(zhí)行具體操作;數(shù)據(jù)轉(zhuǎn)換:格式標準化、特征構(gòu)造及量綱統(tǒng)一;質(zhì)量驗證:檢查處理效果,保證數(shù)據(jù)符合業(yè)務(wù)需求。第二章數(shù)據(jù)理解與質(zhì)量評估2.1數(shù)據(jù)理解:從業(yè)務(wù)到技術(shù)數(shù)據(jù)理解是預(yù)處理的前提,需結(jié)合業(yè)務(wù)場景與技術(shù)分析,明確以下核心要素:2.1.1數(shù)據(jù)來源與業(yè)務(wù)含義來源:明確數(shù)據(jù)采集渠道(如數(shù)據(jù)庫、API、日志文件),知曉數(shù)據(jù)產(chǎn)生機制(如用戶行為數(shù)據(jù)由埋點采集,交易數(shù)據(jù)由訂單系統(tǒng));業(yè)務(wù)含義:定義字段實際業(yè)務(wù)場景(如“訂單狀態(tài)”字段中“1”表示“待支付”,“2”表示“已支付”),避免技術(shù)解讀偏差。2.1.2數(shù)據(jù)結(jié)構(gòu)分析數(shù)據(jù)類型:區(qū)分數(shù)值型(離散型:訂單數(shù)量;連續(xù)型:用戶身高)、分類型(有序:學(xué)歷等級;無序:性別)、文本型(用戶評論)、日期時間型(下單時間);數(shù)據(jù)規(guī)模:記錄數(shù)(如100萬條訂單)、字段數(shù)(如50個用戶屬性)、數(shù)據(jù)量(如10GB原始數(shù)據(jù))。2.1.3關(guān)鍵字段識別根據(jù)業(yè)務(wù)目標定位核心字段(如分析用戶留存需關(guān)注“用戶ID”“注冊時間”“最后活躍時間”),明確字段間的依賴關(guān)系(如“訂單金額”依賴于“訂單ID”)。2.2質(zhì)量評估維度與方法質(zhì)量評估需通過技術(shù)手段與業(yè)務(wù)規(guī)則結(jié)合,從以下維度量化數(shù)據(jù)質(zhì)量:2.2.1完整性:缺失值檢測檢測方法:統(tǒng)計各字段缺失比例(Python示例):missing_ratio=data.isnull().sum()/len(data)print(missing_ratio[missing_ratio>0])可視化分析:通過熱力圖(seaborn.heatmap)直觀展示缺失分布(如“用戶收入”字段在特定時間段集中缺失)。評估標準:核心字段缺失比例需低于5%,非核心字段可放寬至20%。2.2.2準確性:業(yè)務(wù)規(guī)則校驗校驗規(guī)則:數(shù)值范圍校驗(如“年齡”需在0-120歲之間);邏輯一致性校驗(如“訂單金額”需大于0且等于“商品單價×數(shù)量”);枚舉值校驗(如“性別”字段僅允許“男”“女”“未知”)。實現(xiàn)工具:使用pandas的apply()函數(shù)自定義校驗邏輯,或通過GreatExpectations等工具自動化規(guī)則檢查。2.2.3一致性:跨數(shù)據(jù)源比對比對場景:同一實體在不同表中屬性不一致(如用戶表中“用戶名”為“”,訂單表中為“豐”);比對方法:通過關(guān)鍵字段(如“用戶ID”)關(guān)聯(lián)數(shù)據(jù),計算字段一致率(如一致率=(一致記錄數(shù)/總記錄數(shù))×100%)。2.2.4時效性:數(shù)據(jù)新鮮度檢查評估指標:數(shù)據(jù)更新時間距離當(dāng)前時間的天數(shù)(如“用戶行為數(shù)據(jù)”需為近30天內(nèi));處理原則:超時效數(shù)據(jù)(如1年前的用戶消費數(shù)據(jù))需標記或剔除,避免分析結(jié)論偏離當(dāng)前業(yè)務(wù)環(huán)境。第三章缺失值處理3.1缺失機制分析處理缺失值前需先判斷缺失機制,避免誤操作:完全隨機缺失(MCAR):缺失與任何變量無關(guān)(如數(shù)據(jù)傳輸隨機丟包),可通過直接刪除或填充處理;隨機缺失(MAR):缺失與其他observed變量相關(guān)(如“女性用戶收入”字段更易缺失,因女性用戶拒絕填寫收入),需結(jié)合相關(guān)變量建模填充;非隨機缺失(MNAR):缺失與自身值相關(guān)(如“高收入用戶”故意隱藏收入),需通過業(yè)務(wù)邏輯或敏感性分析處理。3.2缺失值處理方法3.2.1刪除法:適用于低價值數(shù)據(jù)刪除行:當(dāng)記錄缺失比例較高(如單條記錄缺失字段超過30%)或缺失字段為非核心字段時,直接刪除記錄(Python示例):data=data.dropna(thresh=len(data.columns)*0.7)#保留至少70%非缺失值的記錄刪除列:當(dāng)字段缺失比例過高(如超過50%)且無業(yè)務(wù)補充價值時,刪除整個字段(如“用戶備注”字段缺失率達80%,且無分析價值)。3.2.2填充法:平衡數(shù)據(jù)完整性與偏差單一值填充:數(shù)值型字段:用均值(適合正態(tài)分布)、中位數(shù)(適合偏態(tài)分布或存在異常值)填充(示例):median_value=data[‘年齡’].median()data[‘年齡’]=data[‘年齡’].fillna(median_value)分類型字段:用眾數(shù)(出現(xiàn)頻率最高的類別)或“未知”類別填充(如“性別”字段眾數(shù)為“男”,則缺失值填充為“男”)。統(tǒng)計模型填充:KNN填充:基于相似樣本的均值/中位數(shù)填充(適合字段間相關(guān)性強的數(shù)據(jù)),需先標準化數(shù)據(jù),再計算樣本間歐氏距離(Python示例):fromsklearn.imputeimportKNNImputerimputer=KNNImputer(n_neighbors=3)data[[‘收入’,‘消費金額’]]=imputer.fit_transform(data[[‘收入’,‘消費金額’]])回歸模型填充:用其他字段預(yù)測缺失值(如用“年齡”“學(xué)歷”預(yù)測“收入”),需構(gòu)建回歸模型并驗證預(yù)測效果。業(yè)務(wù)規(guī)則填充:根據(jù)業(yè)務(wù)邏輯設(shè)定默認值(如“首次下單時間”缺失時,填充為“注冊時間”;“優(yōu)惠券使用次數(shù)”缺失時,填充為0)。3.2.3標記法:保留缺失信息若缺失本身包含業(yè)務(wù)含義(如“用戶收入”缺失可能表示“拒絕透露”),可新增“是否缺失”字段(0/1),保留缺失信息,避免填充導(dǎo)致偏差。第四章異常值處理4.1異常值定義與成因異常值指顯著偏離數(shù)據(jù)主體分布的值,成因包括:錯誤型:數(shù)據(jù)錄入錯誤(如“年齡”輸入為“200”)、設(shè)備故障(如傳感器數(shù)值突增);真實型:業(yè)務(wù)場景下的極端值(如“富豪用戶消費金額”為普通用戶的100倍)。4.2異常值識別方法4.2.1統(tǒng)計方法:適合數(shù)值型數(shù)據(jù)Z-Score法:計算數(shù)據(jù)偏離均值的標準差倍數(shù),|Z|>3視為異常(適合正態(tài)分布數(shù)據(jù)):z_scores=(data[‘訂單金額’]-data[‘訂單金額’].mean())/data[‘訂單金額’].std()outliers=data[abs(z_scores)>3]IQR四分位距法:計算Q1(25%分位數(shù))和Q3(75%分位數(shù)),異常值判定范圍為[Q1-1.5IQR,Q3+1.5IQR](適合偏態(tài)分布):Q1=data[‘訂單金額’].quantile(0.25)Q3=data[‘訂單金額’].quantile(0.75)IQR=Q3-Q1lower_bound=Q1-1.5*IQRupper_bound=Q3+1.5*IQRoutliers=data[(data[‘訂單金額’]<lower_bound)|(data[‘訂單金額’]>upper_bound)]4.2.2可視化方法:直觀識別異常箱線圖:通過箱體(IQR范圍)和須線(1.5IQR范圍)展示數(shù)據(jù)分布,超出須線的點為異常值;散點圖:分析變量間關(guān)系,偏離趨勢線的點可能為異常(如“用戶年齡”與“消費金額”散點圖中,年齡為10歲但消費金額為10萬的點)。4.2.3業(yè)務(wù)規(guī)則法:結(jié)合場景判斷設(shè)定業(yè)務(wù)閾值(如“訂單金額”超過用戶年收入的50%視為異常);關(guān)聯(lián)多字段驗證(如“收貨地址”為“北京”但“IP地址”為“海外”的訂單可能異常)。4.3異常值處理策略4.3.1刪除法:確認錯誤型異常值若異常值為明顯錯誤(如“年齡為-5歲”),直接刪除記錄(data=data[data['年齡']>0])。4.3.2轉(zhuǎn)換法:減弱極端值影響對數(shù)變換:對右偏分布數(shù)據(jù)取對數(shù)(如data['訂單金額']=np.log1p(data['訂單金額'])),使分布更接近正態(tài);Box-Cox變換:適用于嚴格正數(shù)據(jù),通過參數(shù)λ優(yōu)化分布(需先驗證數(shù)據(jù)正定性)。4.3.3替換法:用邊界值填充截斷法(Winsorization):將異常值替換為指定邊界值(如將“訂單金額”超過upper_bound的值替換為upper_bound):data[‘訂單金額’]=data[‘訂單金額’].clip(lower=lower_bound,upper=upper_bound)中位數(shù)替換:若異常值數(shù)量較少,用中位數(shù)替換(data.loc[outliers.index,'訂單金額']=median_value)。4.3.4保留法:真實極端值處理若異常值為業(yè)務(wù)真實場景(如“大客戶消費”),需單獨分析或構(gòu)建“是否異?!碧卣?,避免直接刪除導(dǎo)致信息丟失。第五章重復(fù)值處理5.1重復(fù)值的定義與危害定義:完全重復(fù)(所有字段值相同)或部分關(guān)鍵字段重復(fù)(如“用戶ID+下單時間”相同但“訂單金額”不同);危害:導(dǎo)致統(tǒng)計計數(shù)錯誤(如重復(fù)訂單使GMV虛高)、模型過擬合(重復(fù)記錄使模型偏向高頻樣本)。5.2重復(fù)值識別完全重復(fù):使用pandas的duplicated()函數(shù)標記重復(fù)行(data[data.duplicated()]);部分重復(fù):指定關(guān)鍵字段(如data[data.duplicated(subset=['用戶ID','訂單號'],keep=False)]),keep=False標記所有重復(fù)記錄。5.3重復(fù)值處理方法5.3.1刪除重復(fù)行:默認保留第一條data=data.drop_duplicates(subset=[‘用戶ID’,‘訂單號’],keep=‘first’)keep='first':保留第一次出現(xiàn)的記錄;keep='last':保留最后一次出現(xiàn)的記錄;keep=False:刪除所有重復(fù)記錄。5.3.2合并重復(fù)記錄:適用于部分字段重復(fù)若重復(fù)記錄中部分字段值不同(如同一用戶多次下單的“商品評價”),需合并字段值(如用“;”連接評價內(nèi)容):data=data.group(‘用戶ID’).agg({‘訂單號’:‘first’,‘商品評價’:lambdax:‘;’.join(x.dropna().astype(str))}).reset_index()5.3.3標記重復(fù)記錄:需保留重復(fù)信息時新增“重復(fù)次數(shù)”字段,記錄每個關(guān)鍵字的重復(fù)頻次(如data['重復(fù)次數(shù)']=data.group('用戶ID')['用戶ID'].transform('count')),用于后續(xù)分析重復(fù)行為模式。第六章數(shù)據(jù)轉(zhuǎn)換與格式標準化6.1數(shù)據(jù)類型轉(zhuǎn)換保證字段數(shù)據(jù)類型符合業(yè)務(wù)需求,避免類型錯誤導(dǎo)致計算異常:字符串轉(zhuǎn)日期時間:將“2023-01-01”格式轉(zhuǎn)換為datetime類型,支持時間提?。ㄊ纠篸ata[‘下單時間’]=pd.to_datetime(data[‘下單時間’])data[‘下單月份’]=data[‘下單時間’].dt.month#提取月份數(shù)值轉(zhuǎn)字符串:避免ID字段被誤用于計算(如data['用戶ID']=data['用戶ID'].astype(str));分類型轉(zhuǎn)數(shù)值:標簽編碼(LabelEnr):適合有序分類(如“學(xué)歷”:小學(xué)=1,初中=2,高中=3);獨熱編碼(One-HotEncoding):適合無序分類(如“性別”:男=[1,0],女=[0,1]):data=pd.get_dummies(data,columns=[‘性別’],prefix=‘性別’)6.2日期時間格式標準化統(tǒng)一格式:將“01/01/2023”“2023/01/01”“2023-01-01”等格式統(tǒng)一為“YYYY-MM-DD”(使用dateutil.parser解析);時區(qū)處理:若數(shù)據(jù)涉及多時區(qū),統(tǒng)一轉(zhuǎn)換為UTC或目標業(yè)務(wù)時區(qū)(如data['下單時間']=data['下單時間'].dt.tz_convert('Asia/Shanghai'))。6.3文本數(shù)據(jù)清洗去除噪聲:刪除HTML標簽、特殊字符(如data['用戶評論']=data['用戶評論'].str.replace(r'<[^>]+>',''))、多余空格(str.strip());大小寫統(tǒng)一:將英文文本統(tǒng)一為小寫(str.lower())或大寫(str.upper()),避免“Apple”與“apple”被視為不同詞;分詞與去停用詞:中文需使用jieba分詞,英文使用nltk分詞,并去除“的”“了”等無意義停用詞。6.4數(shù)值格式標準化統(tǒng)一單位:將“kg”與“g”統(tǒng)一為“kg”(如data['體重']=data['體重'].apply(lambdax:x/1000ifx>1000elsex));統(tǒng)一小數(shù)位數(shù):保留2位小數(shù)(如data['訂單金額']=data['訂單金額'].round(2)),避免精度不一致。第七章數(shù)據(jù)標準化與歸一化7.1標準化(Z-ScoreNormalization)適用場景:數(shù)據(jù)分布無明顯偏態(tài),需消除量綱影響(如KNN、SVM等對量綱敏感的算法);計算公式:其中,為均值,為標準差;實現(xiàn)工具:sklearn.preprocessing.StandardScaler,需先fit()訓(xùn)練數(shù)據(jù),再transform()轉(zhuǎn)換數(shù)據(jù):fromsklearn.preprocessingimportStandardScalerscaler=StandardScaler()data[[‘收入’,‘消費金額’]]=scaler.fit_transform(data[[‘收入’,‘消費金額’]])7.2歸一化(Min-MaxNormalization)適用場景:數(shù)據(jù)范圍已知且分布均勻,需將數(shù)據(jù)縮放到[0,1]或[-1,1]區(qū)間(如圖像處理、神經(jīng)網(wǎng)絡(luò)輸入層);計算公式:實現(xiàn)工具:sklearn.preprocessing.MinMaxScaler,可指定feature_range參數(shù)調(diào)整縮放范圍:fromsklearn.preprocessingimportMinMaxScalerscaler=MinMaxScaler(feature_range=(0,1))data[[‘年齡’]]=scaler.fit_transform(data[[‘年齡’]])7.3魯棒標準化(RobustScaling)適用場景:數(shù)據(jù)存在異常值,需用中位數(shù)和四分位距抵抗異常值影響;計算公式:其中,IQR=Q3-Q1;實現(xiàn)工具:sklearn.preprocessing.RobustScaler,適合金融數(shù)據(jù)(如用戶收入存在極端高值)。第八章特征工程基礎(chǔ)8.1特征構(gòu)造:從原始數(shù)據(jù)到信息增強通過業(yè)務(wù)邏輯構(gòu)造新特征,提升數(shù)據(jù)表達能力:時間特征:從日期時間字段提取年、月、日、星期、是否周末、是否節(jié)假日(如data['是否周末']=data['下單時間'].dt.weekday>=5);衍生特征:基于字段計算組合特征(如“客單價=總消費金額/訂單數(shù)”“復(fù)購率=二次購買用戶數(shù)/總用戶數(shù)”);交互特征:反映變量間協(xié)同效應(yīng)(如“年齡×收入”表征消費能力,“商品價格×購買數(shù)量”表征訂單價值)。8.2特征篩選:降維與去冗余避免“維度災(zāi)難”,保留與目標變量強相關(guān)的

溫馨提示

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

評論

0/150

提交評論