干數據這行的朋友,一定深有體會,我們總說著要訓練模型、挖掘洞察、搭建酷炫的可視化儀表盤,可現實卻是,大部分時間都耗在了和臟數據死磕。還沒開始,就被一堆亂七八糟的原始數據耗干了心情。
手動清洗?那可太要命了,不僅枯燥到讓人懷疑人生,還特別容易漏掉細節、引入新錯誤。而且每次換一個數據集,又得從頭來一遍,根本沒法規模化。
別怕,今天給大家介紹5 個簡單但超實用的神級Python自動化清洗腳本,專治各種臟數據。
![]()
1、缺失值處理器
你的數據集到處都是缺失值,有些列的完整度為90%,而有些列的數據則十分稀疏。
你需要決定如何處理每一列的缺失值:刪除行、用均值填充、對時間序列采用前向填充,或是使用更復雜的插補方法。手動處理每一列既繁瑣又容易出現不一致。
腳本功能
自動分析整個數據集中缺失值的分布模式,根據數據類型和缺失模式推薦合適的處理策略,并應用選定的插補方法。生成詳細報告,說明缺失值的位置及處理方式。
![]()
工作原理
腳本掃描所有列,計算缺失值比例和分布模式,確定數據類型(數值型、分類型、日期時間型),并應用相應的處理策略:
數值型數據:使用均值、中位數填充
分類型數據:使用眾數填充
時間序列數據:使用插值法填充
該腳本能區分并差異化處理完全隨機缺失(MCAR)、隨機缺失(MAR)和非隨機缺失(MNAR)模式,并記錄所有更改,確保結果可重現。
完整代碼:https://github.com/balapriyac/data-science-tutorials/blob/main/useful-python-scripts-for-data-cleaning/missing_value_handler.py
2.、重復記錄檢測與解決器
數據中存在重復記錄,但并非都是完全匹配的情況。有時是同一客戶的姓名拼寫略有不同,有時是同一筆交易被記錄了兩次但存在細微差異。
要找出這些模糊重復項并決定保留哪條記錄,需要手動檢查數千行數據。
腳本功能
通過可配置的匹配規則識別完全重復和模糊重復記錄。將相似記錄分組,計算相似度得分,并根據你定義的存活規則,如保留最新記錄、保留最完整記錄等。要么標記重復項供人工審核,要么自動合并記錄。
![]()
工作原理
腳本首先使用基于哈希的比較快速查找完全重復項,然后利用編輯距離和杰羅 - 溫克勒距離等模糊匹配算法,對關鍵字段進行比對以查找近似重復項。
將記錄聚類為重復組,存活規則決定合并時保留哪些值。生成詳細報告,展示所有找到的重復組及采取的處理措施。
完整代碼:https://github.com/balapriyac/data-science-tutorials/blob/main/useful-python-scripts-for-data-cleaning/duplicate_detector.py
3、數據類型修正與標準化器
導入 CSV 文件后,所有數據都變成了字符串格式;日期存在五種不同的格式;
數值中包含貨幣符號和千位分隔符,同一列中的布爾值有多種表示方式。要獲得一致的數據類型,需要為每個雜亂的列編寫自定義解析邏輯。
腳本功能
自動檢測每列的目標數據類型,標準化格式,并將所有數據轉換為合適的類型。處理多種格式的日期、清理數值型字符串、規范化布爾值表示,并驗證轉換結果。提供轉換報告,說明更改內容。
![]()
工作原理
腳本對每列的數值進行抽樣,通過模式匹配和啟發式算法推斷目標數據類型,然后應用相應的解析方法:使用 dateutil 進行靈活的日期解析、使用正則表達式提取數值、使用映射字典規范化布爾值。記錄轉換失敗的情況及問題數值,供人工審核。
完整代碼:https://github.com/balapriyac/data-science-tutorials/blob/main/useful-python-scripts-for-data-cleaning/datatype_fixer.py
4、異常值檢測器
數值型數據中存在會破壞分析結果的異常值。有些是數據錄入錯誤,有些是需要保留的合理極值,還有些則難以界定。
你需要識別這些異常值、了解其影響,并決定處理方式,縮尾處理、封頂處理、刪除或標記供審核。
腳本功能
使用四分位距IQR、Z 分數、孤立森林等多種統計方法檢測異常值,可視化異常值的分布及影響,并應用可配置的處理策略。區分單變量異常值和多變量異常值。生成報告,展示異常值數量、具體數值及處理方式。
![]()
工作原理
腳本使用你選擇的一種或多種方法計算異常值邊界,標記超出閾值的數值,并應用處理措施:刪除、按百分位數封頂、縮尾處理,或用邊界值插補。對于多變量異常值,使用孤立森林或馬氏距離進行檢測。記錄所有異常值的原始數值,以便審計。
完整代碼:https://github.com/balapriyac/data-science-tutorials/blob/main/useful-python-scripts-for-data-cleaning/outlier_detector.py
5、文本數據清洗與標準化器
文本字段雜亂無章:姓名大小寫不一致、地址使用不同縮寫、產品描述包含 HTML 標簽和特殊字符、自由文本字段存在大量首尾空格。標準化文本數據需要一致應用數十種正則表達式模式和字符串操作。
腳本功能
自動清洗和標準化文本數據:統一大小寫、移除不需要的字符、擴展或標準化縮寫、剝離 HTML 標簽、規范化空格、處理 Unicode 編碼問題。可配置的清洗流程允許你對不同類型的列姓名、地址、描述等應用不同規則。
![]()
工作原理
腳本提供可按列類型配置的文本轉換流程,包括大小寫規范化、空格清理、特殊字符移除、使用查找字典進行縮寫標準化,以及 Unicode 編碼規范化。記錄每個轉換步驟,并提供處理前后的樣本供驗證。
完整代碼地址:https://github.com/balapriyac/data-science-tutorials/blob/main/useful-python-scripts-for-data-cleaning/text_cleaner.py
想系統掌握AI核心技能、獲取行業認可資質?
CAIE注冊人工智能工程師認證
助你拓寬職業賽道,成為AI領域持證實力派
企業、高校及渠道合作
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.