---
title: "為什麼原始數字不能直接用｜資料清洗的三種問題，最後一種最難"
url: https://joelin.cc/p/9803
source: https://joelin.cc/p/9803
id: 9803
slug: "data-cleaning-three-problems"
pubDate: 2026-09-16
date_modified: 2026-09-16
updatedDate: 2026-09-16
schema_type: BlogPosting
description: "多數人以為資料的敵人是髒，其實是對不齊：同一篇文章被機器認成好幾筆、比率被拿去相加平均、三個來源一個給週一個給月一個只留七天。這三種問題一種比一種難發現，而最後一種不是技術問題，是判斷。"
ai_summary: "老喬談資料在能用之前要過的那道工，並指出多數人誤會了敵人是誰：髒的資料看得出來，對不齊的資料每一筆都對、合起來卻是錯的。三種問題依發現難度遞增。第一種是同一篇文章被機器認成好幾筆：網站換過站台、網址格式改過、有些連結帶標題有些不帶、有些還掛著錨點，對讀者是同一頁、對機器是不同紀錄，結果這篇文章的成績被切成好幾份，在任何排行榜上都排不進去，不是表現差而是被拆開了；處理方式不是清一次，而是在中間加一層翻譯把所有寫法換算成同一個身分。第二種是比率不能相加：兩天的點擊率直接平均，在兩天曝光量懸殊時會嚴重偏掉，正確做法是回到分子分母各自加總，所以資料層只存分子與分母、所有比率現算；理由是比率一旦被存起來，遲早有人拿兩列去平均，而且算出來的數字看起來很合理、沒有任何地方會報錯。延伸規則是不同切面的數字不能疊，同一天按國家分與按裝置分各自都是一份完整的量。第三種也是最難的一種是時間粒度不對齊：搜尋只到週且保留十六個月、另一家只給週且不分國家、流量存的是月、AI 爬蟲每日但只留七天、廣告收益的逐篇維度只留約二十天，於是有三個問題在結構上就問不出來——單篇三年的真實軌跡、這禮拜發生了什麼、這個月的變化是真變化還是季節性。結論是清洗的本質是判斷不是計算：三個來源都乾淨，問題出在它們要被放進同一句話，而程式不會報錯、報表照樣長出數字，唯一的守門是有人知道這兩個數字的出身不同。"
key_facts: ["資料真正的敵人不是髒而是對不齊：髒的資料看得出來，對不齊的資料每一筆都對、合起來卻是錯的", "同一篇文章因換站台、網址格式、錨點等原因被機器認成多筆，成績被切成好幾份，排不進排行榜不是因為表現差而是被拆開", "比率不能相加：兩天點擊率直接平均，在曝光量懸殊時會嚴重偏掉；正確做法是分子與分母各自加總後再除", "資料層只存分子與分母、不存比率，因為比率一旦存起來遲早被拿去平均，而錯誤不會報錯、只會安靜躺在報表裡", "不同切面的數字不能疊加：同一天按國家分與按裝置分各自都是一份完整的量，放進同一張表加總等於把那天算了兩次", "各資料源的時間粒度與保留期不一致：搜尋到週且留十六個月、流量存月、AI 爬蟲每日但只留七天、廣告的逐篇維度只留約二十天", "三個在結構上問不出來的問題：單篇三年的真實軌跡、這禮拜發生了什麼、這個月是真變化還是季節性"]
categories: ["自媒體矩陣", "內容經營"]
tags: ["資料清洗", "資料分析", "內容經營", "SEO判讀"]
authorship:
  origin: written
  ai_role: assist
entity_ids:
  author: https://me.joelin.cc/#joe
  publisher: https://me.joelin.cc/#joelincc
---

# 為什麼原始數字不能直接用｜資料清洗的三種問題，最後一種最難

## 摘要

老喬談資料在能用之前要過的那道工，並指出多數人誤會了敵人是誰：髒的資料看得出來，對不齊的資料每一筆都對、合起來卻是錯的。三種問題依發現難度遞增。第一種是同一篇文章被機器認成好幾筆：網站換過站台、網址格式改過、有些連結帶標題有些不帶、有些還掛著錨點，對讀者是同一頁、對機器是不同紀錄，結果這篇文章的成績被切成好幾份，在任何排行榜上都排不進去，不是表現差而是被拆開了；處理方式不是清一次，而是在中間加一層翻譯把所有寫法換算成同一個身分。第二種是比率不能相加：兩天的點擊率直接平均，在兩天曝光量懸殊時會嚴重偏掉，正確做法是回到分子分母各自加總，所以資料層只存分子與分母、所有比率現算；理由是比率一旦被存起來，遲早有人拿兩列去平均，而且算出來的數字看起來很合理、沒有任何地方會報錯。延伸規則是不同切面的數字不能疊，同一天按國家分與按裝置分各自都是一份完整的量。第三種也是最難的一種是時間粒度不對齊：搜尋只到週且保留十六個月、另一家只給週且不分國家、流量存的是月、AI 爬蟲每日但只留七天、廣告收益的逐篇維度只留約二十天，於是有三個問題在結構上就問不出來——單篇三年的真實軌跡、這禮拜發生了什麼、這個月的變化是真變化還是季節性。結論是清洗的本質是判斷不是計算：三個來源都乾淨，問題出在它們要被放進同一句話，而程式不會報錯、報表照樣長出數字，唯一的守門是有人知道這兩個數字的出身不同。

### 重點

- 資料真正的敵人不是髒而是對不齊：髒的資料看得出來，對不齊的資料每一筆都對、合起來卻是錯的
- 同一篇文章因換站台、網址格式、錨點等原因被機器認成多筆，成績被切成好幾份，排不進排行榜不是因為表現差而是被拆開
- 比率不能相加：兩天點擊率直接平均，在曝光量懸殊時會嚴重偏掉；正確做法是分子與分母各自加總後再除
- 資料層只存分子與分母、不存比率，因為比率一旦存起來遲早被拿去平均，而錯誤不會報錯、只會安靜躺在報表裡
- 不同切面的數字不能疊加：同一天按國家分與按裝置分各自都是一份完整的量，放進同一張表加總等於把那天算了兩次
- 各資料源的時間粒度與保留期不一致：搜尋到週且留十六個月、流量存月、AI 爬蟲每日但只留七天、廣告的逐篇維度只留約二十天
- 三個在結構上問不出來的問題：單篇三年的真實軌跡、這禮拜發生了什麼、這個月是真變化還是季節性

上一篇講了[六路資料接起來會看到什麼](/p/9802)。這一篇講的是接之前的那道工：為什麼原始數字不能直接拿來用。

先講結論：多數人以為資料的敵人是「髒」，其實真正的敵人是「對不齊」。髒的資料看得出來，對不齊的資料每一筆都對，合起來卻是錯的。

我遇到的問題分三種，一種比一種難發現。

## 第一種：同一篇文章，機器認得出三個不同的它

我這個網站換過站台，網址格式改過；有些連結帶標題，有些不帶；有些連結後面還掛著跳到某個小標的錨點。

對讀者來說這些全部是同一頁。對機器來說，那是三筆不同的紀錄。

EX:

原本文章網址是

domain.com?p=987

後來改為

domain.com/p/987

這種時候就必須要做資料清洗與合併，不然～～～

後果很直接：這篇文章的成績被切成三份。

單獨看每一份都不起眼，於是它在任何排行榜上都排不進去——不是因為它表現差，是因為它被拆開了。

這種髒是最容易發現的一種，因為只要有人手動去查一篇自己熟悉的文章，就會發現數字對不上。麻煩的是它會一直長出新的變體：每一次改網址、每一次搬家、每一次有人用不同方式連進來，就多一種寫法。

所以處理方式不是「清一次」，是在中間加一層翻譯：不管進來的是哪一種寫法，都先換算成同一個身分，再開始算。

這一層要是沒有，後面所有數字都在對不同的東西加總。

## 第二種：比率不能相加，所以我不把比率存起來

這一種開始反直覺了。

假設我想知道兩天平均的點擊率。

直覺做法是把第一天的點擊率和第二天的點擊率加起來除以二。這個算法在兩天的曝光量差不多時勉強可用，但只要一天曝光一萬次、另一天曝光十次，答案就會嚴重偏掉——那十次曝光的日子，在平均裡被當成和一萬次一樣重要。

正確做法是回到原始的分子和分母：兩天的點擊數加起來，除以兩天的曝光數加起來。

所以我在資料層只留兩種東西：分子（點擊、收益、次數）和分母（曝光、人數）。所有比率都不存，要看的時候現算。

這條規則寫下來的理由很現實：只要那個比率被存進某張表，遲早會有人（包括我自己，包括 AI）把兩列比率拿去平均，而且算出來的數字看起來很合理，沒有任何地方會報錯。錯誤不會跳出來，它會安靜地躺在報表裡。

同樣的道理延伸出另一條：不同切面的數字不能疊。同一天按國家分的數字是一份完整的量，同一天按裝置分的也是一份完整的量。把它們放進同一張表加總，等於把那天算了兩次。這種錯最難抓，因為總數看起來只是「比預期大一點」。

## 第三種：三個來源都很乾淨，但一個給你週、一個給你月、一個只留七天

這是最難的一種，也是我花最多時間的地方。

我手上的資料來源，時間刻度全都不一樣，而且不是我能決定的：

- 搜尋那一路，關鍵字層級最細只到週，而且只保留十六個月。
- 另一家搜尋引擎只給週，連國家都不分。
- 流量分析我存的是月。
- AI 爬蟲的紀錄是每日，但只保留七天，掉了就永遠補不回來。
- 廣告收益是每日，但「逐篇文章」那個維度只留大約二十天。

這幾行加起來的意思是：這些資料沒有一個共同的時間單位。

於是有些問題在結構上就問不出來。

第一個問不出來的是「這一篇三年來的真實軌跡」。它跨過網址改版，又撞上搜尋那邊十六個月的保留上限——網址可以靠翻譯層合併，但更早的那段資料根本不存在，任何工具都變不出來。

第二個是「這禮拜發生了什麼」。週資料最快也要等一週結算完才看得到；真正即時的只有 AI 爬蟲那一路，而它回答的是機器來過，不是人怎麼想。

第三個是「這個月的變化是真的變化，還是每年這時候都這樣」。要回答它得跟去年同月比，而那需要至少兩年的同源資料，我手上只有一路真的滿足。

## 所以清洗的本質是判斷，不是計算

如果清洗只是「把髒的洗掉」，那它是純技術工作，寫好程式就結束了。

但第三種問題不是髒。三個來源各自都完全正確、都很乾淨，問題出在它們要被放進同一句話裡。而「要不要放進同一句話、放進去之後這句話還能不能算數」，這件事沒有標準答案，是判斷。

舉個具體的：我想說「這篇文章這個月變差了」。搜尋那邊給我的是四個星期的資料，流量那邊給我的是一個完整日曆月，兩者的區間不一樣。要不要就這樣比？可以比，但結論只能說到「方向一致」，不能說到「掉了幾成」。

這個分寸沒有人會幫你把關。程式不會報錯，報表也會照樣長出一個數字。唯一的守門是有人知道這兩個數字的出身不同。

下一篇講另一件也常被誤會是純技術的事：電腦怎麼知道兩個寫法完全不同的詞，其實在問同一件事。

本文關鍵字：資料清洗、資料對齊、比率不可加、資料粒度、內容數據分析

## 常見問題

### 為什麼不把算好的比率直接存起來？

因為比率不能相加。存起來之後，遲早會有人把兩列比率拿去平均，而那個結果在曝光量差距大的時候會嚴重偏掉。更麻煩的是它不會報錯，數字看起來很合理，錯誤只會安靜躺在報表裡。

### 同一篇文章被認成好幾筆，重新整理一次資料就好了嗎？

不行，因為變體會一直長出來。每一次改網址、每一次搬家、每一次有人用不同方式連進來，就多一種寫法。要解決得在中間加一層翻譯，讓所有寫法先換算成同一個身分再開始算。

### 時間粒度不一樣，就不能一起看了嗎？

可以一起看，但結論要收得住。例如搜尋那邊給的是四個星期、流量那邊給的是一個完整日曆月，兩者可以比方向，不能比幅度——可以說走向一致，不能說掉了幾成。

### 這些判斷有沒有辦法自動化？

第一種和第二種可以，寫成規則讓機器每次都照做。第三種不行：三個來源各自都正確，要不要把它們放進同一句話、放進去之後這句話還能不能算數，沒有標準答案，那是判斷。
