數據清洗是數據分析過程中一個非常重要的環節,數據清洗的結果直接關系到模型效果和最終結論。在實際中,數據清洗通常會占數據分析整個過程的50%-80%的時間。下面介紹以下數據清洗主要的步驟和任務。
1.數據預處理階段
該階段的主要任務是將數據導入數據庫中,然后查看數據:對數據有個基本的了解,並且初步發現一些問題,為之后的處理做准備。
2.缺失值清洗
缺失值是最常見的數據問題,處理缺失值的方法:
(1).確定缺失值的范圍:對每個字段計算其缺失值的比例,然后按照缺失比例和字段的重要性,采用以下策略:
(2).去除不需要的字段:直接刪掉(建議每做一次清洗前都備份以下)
(3).填充缺失內容:對於缺失值的填充有以下三種方法
- 以業務知識、常識或經驗推測其缺失值並填充
- 用同一指標的計算機結果(均值、中位數、眾數等)填充缺失值
- 以不同指標的計算機結果填充缺失值(比如數據本身和它的其他數據相關,比如身份證號的生日那一部分)
(4).重新取數:對於比較重要且缺失率比較高的,考慮重新從其他渠道再取一次數據。
3.格式內容清洗
(1) 時間、日期、數值、全半角等顯示格式不一致
將其處理成一致的某種格式即可
(2)內容中有不該存在的字符
比如空格或者身份證號出現漢字,這種典型的不合理字符。需要半自動校驗半人工方式來找出可能存在的問題,並去除不合理字符。
(3) 出現不符合該字段的內容
比如姓名寫成了性別這種問題。該問題特殊性在於:不能簡單的用刪除來處理,因為成因有可能是人工填寫錯誤,也有可能是前端設計沒有校驗,還有可能是導入數據時部分或全部存在列沒有對齊的問題,因此要詳細識別問題類型。
4.邏輯錯誤清洗
(1)去重
有的時候去重不是簡單的刪除就可以的。
(2)去除不合理值
比如有的人填表隨便填,年齡寫190,就明顯不合理,這種數據有兩種方式:一種直接刪除;一種直接按缺失值處理。
(3)修正矛盾內容
比如身份證號中有的數據可以和其他字段驗證的,比如年齡,有時候身份證號的年齡和年齡字段中的年齡矛盾,這種就需要根據字段的數據來源,看哪個字段更可靠,去除或者重置不可靠的字段。
5.非需求數據清洗(也就是不需要的字段)
建議:如果一點都無關可以刪了,其他的除非數據量大到不刪除字段就沒辦法處理的程度,那么能不刪就不刪。盡量勤備份。
總之勤備份,多觀察,選擇合適的方法對數據進行處理。
原作者:https://blog.csdn.net/wyqwilliam/article/details/84801095