iPAS AI 應用規劃師 中級 科目二 大數據處理分析與應用

怎麼從 df.describe() 的輸出讀對統計數字?

原題 48

使用銷售資料集(marketing.csv)進行迴歸分析,附圖程式碼展示資料載入與處理。根據 df.describe() 的輸出結果,下列何者正確? (describe() 輸出:youtube count=200, mean=176.451, std=103.025, min=0.840, 25%=89.25, 50%=179.700, 75%=262.590, max=355.680;facebook count=199, mean=27.820, std=17.808, min=0.000, 25%=11.940, 50%=27.000, 75%=43.680, max=59.520;newspaper count=200, mean=36.665, std=26.134, min=0.360, 25%=15.300, 50%=30.900, 75%=54.120, max=136.800;sales count=200, mean=16.827, std=6.261, min=1.920, 25%=12.450, 50%=15.480, 75%=20.880, max=32.400)

白話

題目給出 marketing.csv 的 df.describe() 結果,包含 youtube、facebook、newspaper、sales 四個欄位的 count、mean、std、min、25%、50%、75%、max 八個統計量。四個選項各描述其中一個統計數字是否正確。

問你:對照 describe() 的輸出,哪一個描述是正確的?

點選你的答案。

01 總結

一句話總結

對照 describe() 輸出,正確的是 D:youtube 欄的 25%(Q1)= 89.25,這就是第一四分位數。選項 A 的總筆數應以 youtube 的 count=200 為準;選項 B 把均值(mean)當成中位數(50%);選項 C 把 Q1(25%)當成 Q3(75%)。

02 情境

先感受問題:describe() 的八個格子每個代表什麼

行銷資料分析師小嘉拿到 marketing.csv,用 df.describe() 看摘要。她要搞清楚每一行數字的意思,才不會把均值當中位數、把 Q1 當 Q3:

df.describe() 的每一行代表:
count:非缺失值的筆數(不是總行數)
mean:算術平均值
std:樣本標準差
min:最小值
25%:第一四分位數(Q1),比 25% 的值還低的臨界點
50%:第二四分位數(Q2),即中位數(Median)
75%:第三四分位數(Q3),比 75% 的值還低的臨界點
max:最大值

這題就是考「你有沒有記住這八個統計量的意義」。

03 對照

逐一驗證四個選項

  1. 選項 A:「資料集個數 199 筆,變數 4 個」→ 前半錯。describe() 的 count 欄顯示各欄位的非缺失值筆數:youtube=200、facebook=199(有 1 筆 NaN)、newspaper=200、sales=200。「資料集個數」通常指總行數,應為 200(youtube 和 newspaper 等多數欄都是 200)。199 是 facebook 欄的缺失後筆數,不是整個資料集的總行數。
  2. 選項 B:「sales 中位數是 16.827」→ 錯。describe() 的 sales 欄:mean=16.827(這是均值),50%=15.480(這才是中位數)。16.827 是平均值,不是中位數。
  3. 選項 C:「facebook Q3 是 11.94」→ 錯。describe() 的 facebook 欄:25%=11.940(Q1),75%=43.680(Q3)。11.94 是 Q1(第一四分位數),不是 Q3(第三四分位數)。
  4. 選項 D:「youtube Q1 是 89.25」→ 正確。describe() 的 youtube 欄:25%=89.250。25% 對應的是 Q1(第一四分位數),89.25 就是 youtube 的 Q1。這個描述完全正確。
04 解法

對照 describe() 輸出表格直接查

小嘉把各選項的說法對照 describe() 表格驗證:

選項 A:「199 筆」→ 查 count:youtube=200、facebook=199。資料集總行數是 200(youtube 和 sales 都顯示 200)。199 是 facebook 缺失值後的計數,不是整個資料集的筆數。→ 錯。

選項 B:「sales 中位數 16.827」→ 查 sales 欄:mean=16.827、50%=15.480。16.827 是均值,50% 才是中位數。→ 錯。

選項 C:「facebook Q3 = 11.94」→ 查 facebook 欄:25%=11.940、75%=43.680。Q3 是 75% = 43.680,不是 11.94。→ 錯。

選項 D:「youtube Q1 = 89.25」→ 查 youtube 欄:25%=89.250。Q1 = 25% = 89.25。→ 正確!

這就是選項 D 講的:youtube 變數的第一四分位數(Q1)是 89.25

技術版:describe() 的八個統計量精讀

中級考試大概率會考程式碼跟公式,所以這部分你還是要學。但如果現在學起來很痛苦,可以先跳過,等讀完其他題目回頭再來。

Step 1 純故事版

想像 200 個學生的數學分數排成一排,從最低到最高。count 算有幾個人分數有填(有缺席的不算)。mean 是平均分數。50% 是站在正中間那個人的分數(中位數)。25% 是站在四分之一位置的人的分數(Q1),75% 是站在四分之三位置的人的分數(Q3)。mean 和 50% 分開是因為有少數極高分拉高了平均,但中位數不受影響。

Step 2 中文 ↔ 程式碼對照
describe() 的行標籤統計意義
count非缺失值筆數(≤ 總行數)
mean算術平均值 = Σx / n
std樣本標準差(ddof=1)
min最小值
25%第一四分位數 Q1(下四分位數)
50%第二四分位數 Q2 = 中位數(Median)
75%第三四分位數 Q3(上四分位數)
max最大值
Step 3 符號角色表
Q1(25th percentile)
四分之一分位數:25% 的資料值在 Q1 以下,75% 的資料值在 Q1 以上。
Q2(50th percentile / Median)
中位數:50% 的資料值在 Q2 以下,也是資料的「中間值」,不受極端值影響。
Q3(75th percentile)
四分之三分位數:75% 的資料值在 Q3 以下,25% 在 Q3 以上。
IQR(Interquartile Range)
四分位距 = Q3 - Q1,衡量中間 50% 資料的散佈程度,可用來識別離群值。
count vs len(df)
count 是非 NaN 值的筆數,len(df) 是 DataFrame 的總行數(含 NaN 行)。兩者不同時代表有缺失值。
Step 4 完整公式對應
統計量公式
mean(均值)x̄ = (Σxᵢ) / n
std(樣本標準差)s = √(Σ(xᵢ - x̄)² / (n-1))
Q1(25% 分位數)第 25th 百分位數,排序後 n×0.25 位置的值
median(50%)排序後正中間的值(n 為奇數)或中間兩值的平均(n 為偶數)
IQRQ3 - Q1 = 75th percentile - 25th percentile
Step 5 自我複述
  1. describe() 的 count 和總行數(len(df))什麼時候不一樣?不一樣代表什麼?
  2. mean 和 50%(中位數)差很多代表什麼?哪種情況下兩者會相差很大?
  3. 25%、50%、75% 各稱為什麼?對應哪個四分位數符號?
  4. IQR = Q3 - Q1,這個數字在離群值偵測上有什麼用途?
  5. facebook count=199 但 youtube count=200,這意味著 facebook 欄有幾個缺失值?
05 陷阱

為什麼其他選項是錯的

選項 A 資料集個數為 199 筆

字面在說什麼:整個資料集有 199 筆資料,共 4 個變數。

為什麼不對:describe() 的 count 欄顯示 facebook=199 是因為 facebook 有 1 個缺失值,但 youtube、newspaper、sales 都是 200。整個 DataFrame 的總行數是 200(即 len(df)=200),不是 199。「資料集個數」應以最完整的欄位(或 len(df))為基準,而非某個有缺失值欄位的 count。

誰會選錯:看到 describe() 中出現 199 就以為是總筆數,沒有注意到各欄 count 值不同,以及 199 只是 facebook 欄的非缺失值個數。

選項 B sales 中位數是 16.827

字面在說什麼:sales 欄的中位數(中間值)是 16.827。

為什麼不對:describe() 中 sales 欄的 mean=16.827,50%=15.480。16.827 是算術平均值,不是中位數。中位數是 50% 那行的數字,也就是 15.480。mean 和 median 是兩個不同的集中趨勢指標,這題在考「你能不能區分 mean 和 50%」。

誰會選錯:把 mean 和 median(50%)搞混的人。看到「中間值」就想到「平均值」,或反過來,是初學者最常見的混淆。

選項 C facebook Q3 是 11.94

字面在說什麼:facebook 欄的第三四分位數(Q3)是 11.94。

為什麼不對:describe() 中 facebook 欄:25%=11.940(這是 Q1)、75%=43.680(這是 Q3)。11.94 是 Q1(第一四分位數,25th percentile),不是 Q3(第三四分位數,75th percentile)。這題在考「你有沒有記住 25% = Q1,75% = Q3」。

誰會選錯:不清楚四分位數對應的百分位數,把 25% 和 75% 搞混,以為 25% 是「第三」的人(從最小值往上數第一個四分位點,稱為「下四分位數 Q1」,不是第三)。

06 變形

同個考點下次怎麼變形

變形 1 邊界

直覺:如果 mean 和 50%(中位數)差很多,代表資料的分佈有什麼特徵?

答案:代表資料有偏態(skewness)。mean > median 代表正偏態(右偏):少數極大值拉高了均值,大多數資料集中在較小的值(例如收入分佈)。mean < median 代表負偏態(左偏):少數極小值拉低了均值。銷售資料中,少數超暢銷遊戲的高銷售額會讓 mean 高於 median,這是正偏態的典型表現。

變形 2 反例

直覺:facebook 欄 count=199,youtube count=200,怎麼知道 facebook 有幾個缺失值?

答案:缺失值個數 = len(df) - count = 200 - 199 = 1。或者直接用 df['facebook'].isna().sum() 得到 1。describe() 的 count 告訴你「這欄有幾個有效值」,用總行數減掉就是缺失值個數。在 df.head() 的輸出也能看到 index 1 的 facebook 是 NaN,直接佐證。

變形 3 升級版

直覺:用 IQR 方法定義離群值的標準公式是什麼?

答案:低於 Q1 - 1.5×IQR 或高於 Q3 + 1.5×IQR 的值是離群值(Tukey's fence)。以 youtube 為例:Q1=89.25、Q3=262.59、IQR=173.34。下界 = 89.25 - 1.5×173.34 = -170.76(不存在負銷售額,實際下界是 0);上界 = 262.59 + 1.5×173.34 = 522.60(youtube 的 max=355.68 未超過,所以沒有高端離群值)。箱型圖(boxplot)就是根據這個公式標記離群點的。

變形 4 跨領域

直覺:describe() 在機器學習流程中什麼時候最重要?

答案:EDA(探索性資料分析)階段:特徵縮放之前,看各特徵的值域(min/max)決定是否需要標準化;模型訓練之前,看 count 確認有無缺失值需要填補;診斷模型效果時,比較預測值和真實值的 describe() 輸出,確認模型不會有系統性偏差。describe() 是 EDA 的第一步,是資料科學家的「生命體徵檢查」。

變形 5 評估指標

直覺:如果 describe() 的 std 很大,代表什麼?對建模有什麼影響?

答案:std 大代表資料分散,各樣本之間的值差異很大。例如 youtube std=103.025,而 mean=176.451,代表許多樣本的 youtube 廣告費用和平均值差距超過 100 萬元。對建模的影響:線性迴歸等對尺度敏感的模型,std 大的特徵需要做標準化(Standard Scaler),否則該特徵會主導梯度下降的方向,讓訓練不穩定或收斂慢。

07 延伸

想再往下看,這 5 個

出處

iPAS 經濟部產業人才能力鑑定 ・ 114 年第二梯次 iPAS AI 應用規劃師 中級 科目二 大數據處理分析與應用 第 48 題

查看官方原文 PDF