Course 4 - Process Data from Dirty to Clean

簡介

This is the fourth course in the Google Data Analytics Certificate. In this course, you’ll continue to build your understanding of data analytics and the concepts and tools that data analysts use in their work. You’ll learn how to check and clean your data using spreadsheets and SQL, as well as how to verify and report your data cleaning results.

章節大綱

  1. The importance of integrity
    學習檢查資料完整性以及數據不足的處理方式,了解隨機抽樣對於避免抽樣偏差的重要性。
  2. Clean data for more accurate insights
    了解乾淨數據和髒數據之間的差異,練習清理試算表和其他工具中的資料。
  3. Data cleaning with SQL
    學習使用 SQL 中的查詢功能以及函數來清理和修改資料庫中的資料。
  4. Verify and report on cleaning results
    學習驗證資料是否乾淨並報告及記錄資料清理結果。
  5. Optional: Add data to your resume
    了解工作申請流程,並製作一份能突出優勢和相關經驗的履歷。
  6. Course wrap-up
    課程總結。

內容筆記

Module 1 - The importance of integrity

資料完整性

在開始任何分析之前,都必須先檢查數據是否有效、完整且乾淨,並且避免在操作過程中影響到資料的完整性,以下是幾個可能會有影響的操作:

操作
解釋
複製 在進行檢查以及標準化的過程時,如果僅是將原始資料複製一部分出來進行處理,可能導致原始資料還含有不合規範的資料,並導致兩份資料產出結果不同。
傳輸 資料在傳輸時可能會有傳輸不完全或是欄位錯誤等情況,影響資料完整。
編輯 在進行編輯資料時如果有誤刪的情況,必須及時恢復,避免導致資料不完整。

資料問題的處理

  1. 無數據:
    • 先小規模地蒐集數據進行初步分析,並在蒐集更多資料後請求額外時間進行更深入的分析。
    • 使用其他類似資料集中的資料 (擁有類似的條件、特性)
  2. 數據量少:
    • 使用替代數據進行分析
    • 調整分析範圍以符合現有數據
  3. 數據錯誤:
    • 嘗試修正資料中的錯誤
    • 如果樣本數夠多且刪除該數據影響較小,可以直接忽略

樣本量與相關名詞

  1. Population (母體):要研究的整體對象。
  2. Sample (樣本):用於代表母體的子集合。
  3. Confidence level (置信度):特定個體對於特定命題真實性相信的程度。
  4. Confidence interval (信賴區間):在某一置信水平下,樣本統計值允許的範圍。信賴區間越大,置信水平越高。
  5. Margin of error (誤差範圍):樣本統計值與總體參數值之間的最大誤差,也可以視為是信賴區間的半徑。
  6. Statistical power (檢定力):正確拒絕「錯誤的虛無假設」的機率;獲得有意義結果的機率。
  • 已知母體、誤差範圍以及置信度 → 可以計算最少所需樣本數
  • 已知母體、樣本量以及置信度 → 可以計算誤差範圍

Module 2 - Clean data for more accurate insights

髒數據的類型

類型 解釋
重複數據 輸入或匯入數據時產生多次出現的紀錄
過時數據 因為人員變動或是系統老舊導致資料過舊
不完整數據 資料蒐集不當或是輸入錯誤導致缺少部分內容
不正確數據 完整但是不正確的數據,可能是虛構或是模擬的數據
不一致數據 資料的格式混亂

試算表清理資料 - 內建功能

  1. 條件式格式
    全選資料,點擊 格式 > 條件式格式設定,可以將空白內容以指定的格式表示,方便檢查。
  1. 刪除重複內容
    全選資料,點擊 資料 > 資料清除 > 移除重複內容,如果選取有包含標題的話記得勾選 資料包含標題列,之後選擇要分析的欄位,如果兩列資料在勾選的欄位值都相同的話則會清除。
  1. 資料透視表
    全選資料,點擊 插入 > 資料透視表,接著就可以在新分頁使用資料透視表,可以在其中檢查各欄、列,或是進行加總、排序等檢查數據。

試算表清理資料 - 函數

  1. SPLIT(文字, 分隔符號, [逐個分割], [移除空白文字])
    可以將文字依照分隔符號分割並且儲存,注意使用時要確保有足夠空間,否則會回傳錯誤,常用於分割日期與時間。
  • 逐個分割:預設為 TRUE,代表當分隔符號長度為 2 以上時,會將每個字元都作為分隔,否則將其當為單一個分隔條件。不過分隔符號通常只會使用單一字元,故不常使用。
  • 移除空白文字:預設為 TRUE,將連續分隔符號視為一個分隔符號,否則會在兩個符號之間加入空白儲存格值。
  1. COUNTIF(範圍, 條件)
    計算範圍內符合條件的儲存格數量。
  • 注意條件的部分要用 "" 包起來,如果裡面沒有輸入東西則會計算空格數量。
  • 如果要篩選的內容為文字,可以用萬用字元 ? 代表單一字元以及 * 代表多個字元,如果要比對實際的 ? 以及 *,則要在前面加上 ~
  1. LEN(文本)
    回傳字串的長度。

  2. LEFT(字串, 字元數) / RIGHT(字串, 字元數)
    傳回指定字串開頭 / 倒數幾個字元構成的子字串。

  3. MID(字串, 起點, 擷取長度)
    傳回字串的特定區段。

  4. CONCATENATE(字串1, [字串2, …])
    將多個字串連接在一起。

  5. TRIM(字串)
    移除文字開頭、結尾和重複的空格。

Module 3 - Data cleaning with SQL

資料清理常用 SQL 功能

  1. SELECT DISTINCT column1, column2, …
    只顯示欄位中不同的值。
1
2
3
SELECT
DISTINCT Country
FROM Customers;
  1. MIN(column_name) / MAX(column_name)
    回傳欄位中的最大 / 最小值。
1
2
3
4
SELECT 
MIN(Price),
MAX(Price)
FROM Products;
  1. WHERE column_name IS NULL;
    尋找欄位內缺少資料的列。
1
2
3
4
5
6
SELECT
*
FROM
your project name.cars.car_info 
WHERE 
num_of_doors IS NULL;
  1. 更新資料 (BigQuery 沙盒版不支援)
1
2
3
4
5
6
UPDATE
table_name --資料所在的 table
SET
column1 = value1, column2 = value2, ... --更新的值
WHERE
condition --篩選要更新的列
  1. 插入資料 (BigQuery 沙盒版不支援)
1
2
3
4
INSERT INTO
table_name (column1, column2, column3, ...) --資料所在的 table 以及行名稱
VALUES
(value1, value2, value3, ...) --各行對應的資料
  1. LENGTH(string)
    回傳字串長度。

  2. SUBSTR(string, start, length)
    回傳子字串。

  3. TRIM(string)
    刪除字串頭尾的所有空格。

  4. CAST(value1 AS data_type [(length)])
    將值轉換成另一種資料類型。

  5. CONCAT(string1 , string2, …)
    傳回串連所有字串值所產生的字串。

  6. COALESCE(value1, value2, …)
    傳回第一個非 NULL 的值。

  7. 類似 if else 語法
    根據條件決定回傳的值。

1
2
3
4
5
6
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END;

Module 4 - Verify and report on cleaning results

變更日誌

變更日誌可以幫助我們追蹤資料的改變和清理,建議使用固定格式方便管理,而變更日誌通常會包含這些內容:

  • 修改的文件與修改內容
  • 變更日期
  • 進行變更的人
  • 批准變更的人
  • 版本號
  • 變更原因

詞彙

  1. Changelog (變更日誌): A file containing a chronologically ordered list of modifications made to a project.
  2. Filtering (篩選): The process of showing only the data that meets a specified criteria while hiding the rest.
  3. Syntax (句法): The predetermined structure of a language that includes all required words, symbols, and punctuation, as well as their proper placement.