更新時間:2022年08月12日11時01分 來源:傳智教育 瀏覽次數:
在Python工作中,我們經常要對數據進行清洗與轉換。數據的清洗轉換是指將抽取到的數據源表中的數據,根據數據倉庫系統模型的要求進行數據的清洗、轉換等操作,保證來自不同系統、不同格式數據的一致性和完整性,并且要按照業務要求加載到目標表中。
數據的清洗轉換是ETL中最為復雜的篇章,主要的任務是過濾掉不符合要求的數據。不符合要求的數據主要是有不完整的數據、錯誤的數據、重復的數據三大類。下面針對不符合要求的三大類數據進行詳細介紹。
1.不完整的數據
數據上報、接口調用時都會產生大量的不完整數據,不完整數據的產生是不可避免的現象,而不完整的數據對大數據環境下的決策具有一定的影響。不完整數據主要包括缺失部分信息的數據。檢測不完整數據的方法具體如下。
缺失部分或全部內容的數據主要是采用計算機和人工相結合的方法進行查找,并對缺失的內容進行填充處理。不完整數據的清洗流程如圖2-2所示。
圖2-2 不完整數據的清洗流程
在圖2-2中,不完整數據的清洗流程主要分為3個步驟,具體如下。
(1)對獲得的數據源進行不完整數據檢測,為后續的數據處理提供所需的數據。
(2)對檢測出來的不完整數據進行處理,如修復缺失部分或全部內容的數據。
(3)輸出處理后的符合要求的完整數據。
2.錯誤的數據
大數據環境下數據量的劇增使得獲取到的數據源會由于各種原因存在大量的錯誤數據。
錯誤數據產生的原因是業務系統不夠健全,在接收輸入數據后沒有進行過濾判斷,而是直接將數據寫入后臺數據庫造成的,如數值數據輸成全角數字字符、字符串數據后面出現一個回車操作、日期格式不正確、日期越界等錯誤。錯誤數據的清洗流程如圖2-3所示。
圖2-3 錯誤數據的清洗流程
在圖2-3中,錯誤數據的清洗流程主要分為3個步驟,具體如下。
(1)將數據源按照規定的數據格式進行檢測,并執行數據預處理,為后續的處理步驟做準備。
(2)對預處理后的數據進行一致性檢測,如果預處理后的數據與原始數據存在完整性不一致的問題,則通過數據修改過程使數據統一。為避免再次出現該問題,應重復進行檢測與修改過程,直到符合要求為止。
(3)輸出修改后的數據