《從零開始的資料科學筆記》Day#7:None 與 NaN 的差異

更新 發佈閱讀 4 分鐘
vocus|新世代的創作平台

Python/Pandas中的None VS NaN

大家在進行資料清理時一定會遇到一個問題,到底缺失值、空值要怎麼判斷,以及如何處理? 而且時常會被他們的定義搞得頭昏腦脹…
再加上每種程式語言中對於null、None、nan、””等的定義可能不盡相同,因此這篇文章將以Python和相關套件所定義的為主。

vocus|新世代的創作平台

1. 什麼是 None ?

  • 是 Python 中的內建空值型態(類似於 Java 的 null)
  • 通常用來表示尚未賦值的變數、函式沒有回傳值
x = None
print(x is None)

# 輸出
True

2. 什麼是 NaN ?

  • 全名是 Not a Number
  • 來自 numpy(np.nan),通常出現在數值型欄位中
  • Pandas 認為 NaN 是缺失值(missing value)
import numpy as np

x = np.nan
print(np.isnan(x))

# 輸出
True

3. Pandas處理None/Nan

import pandas as pd
import numpy as np

df = pd.DataFrame({
'A': [1, None, 3],
'B': [4, np.nan, 6]
})

# 輸出
| A | B |
| --- | --- |
| 1.0 | 4.0 |
| NaN | NaN |
| 3.0 | 6.0 |

說明

🔍 注意:Pandas 自動將 None 轉為 NaN 在數值欄位中。

4. 如何檢查空值/缺失值?

vocus|新世代的創作平台
df = pd.DataFrame({
'Name': ['Amy', None, 'Cara'],
'Score': [90, np.nan, 88]
})
print(df)
df.isna() # 檢查是否有缺失值
df.dropna() # 移除有缺失值的列
df.fillna('Unknown') # 補上字串

# 輸出
Name Score
0 Amy 90.0
1 None NaN
2 Cara 88.0


Name Score
0 False False
1 True True
2 False False


Name Score
0 Amy 90.0
2 Cara 88.0


Name Score
0 Amy 90.0
1 Unknown Unknown
2 Cara 88.0

說明

  • df.dropna(axis=0, how='any', inplace=False)
    • axis: 0為按照row刪;1為按照column刪
    • how: 'any'代表有一個na就刪;'all'代表全都na才刪
    • inplace: 是否直接替換原df中的值
  • df.fillna('要補上的值')

數值計算上之差異

此差異主要會是在前處理過程中,缺失值尚未處理乾淨時可能會遇到。

None + 1      
np.nan + 1

# 輸出
TypeError
nan

小結

vocus|新世代的創作平台

最佳實務建議

  • ✅ 在 Pandas 資料集中統一使用 np.nan 或 pd.NA
  • ✅ 使用 pd.isna() / pd.notna() 進行判斷(支援兩者)
  • ✅ 避免混用 None 與 np.nan,尤其是數值欄位


留言
avatar-img
Ethan的AI學習筆記
8會員
33內容數
我是一個不務正業的資料科學家,從零開始學習的路途上跌跌撞撞,跌過許多坑,也撞過許多牆... 當有人迷失方向時,希望這些筆記可以成為你的指南針。
Ethan的AI學習筆記的其他內容
2025/06/16
🔍什麼是Matplotlib? Matplotlib 是 Python 最早也是最強大的 2D 資料視覺化套件,提供靈活且客製化程度高的繪圖介面。 🌍 發展歷史悠久,幾乎所有可視化工具都以它為基礎(如 Seaborn、Pandas 內建繪圖、Plotly)
Thumbnail
2025/06/16
🔍什麼是Matplotlib? Matplotlib 是 Python 最早也是最強大的 2D 資料視覺化套件,提供靈活且客製化程度高的繪圖介面。 🌍 發展歷史悠久,幾乎所有可視化工具都以它為基礎(如 Seaborn、Pandas 內建繪圖、Plotly)
Thumbnail
2025/06/14
🧪GroupBy能做什麼? groupby() 可將資料依照欄位分組,接著對每個群體套用統計或轉換函式,如同 SQL 中的 GROUP BY。 善用groupby()可以讓自己資料處理能力更上一層!!!
Thumbnail
2025/06/14
🧪GroupBy能做什麼? groupby() 可將資料依照欄位分組,接著對每個群體套用統計或轉換函式,如同 SQL 中的 GROUP BY。 善用groupby()可以讓自己資料處理能力更上一層!!!
Thumbnail
看更多
你可能也想看
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
在Python函式中,可以使用None來指定動態的預設引數,使用更靈活,Docstrings同時能夠提供清晰的文檔。本篇文章說明利用這種方式來讓函式更彈性,輸入不同型態的關鍵字引數,並在事件紀錄時間的Log訊息的範例中詮釋,可自行輸入時間或者預設導入系統的時間,在跟其他程式交握時,可以更靈活的應用。
Thumbnail
在Python函式中,可以使用None來指定動態的預設引數,使用更靈活,Docstrings同時能夠提供清晰的文檔。本篇文章說明利用這種方式來讓函式更彈性,輸入不同型態的關鍵字引數,並在事件紀錄時間的Log訊息的範例中詮釋,可自行輸入時間或者預設導入系統的時間,在跟其他程式交握時,可以更靈活的應用。
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
資料前處理(Data Preprocessing)中的重要角色-缺失值處理。從檢查、刪除到填充缺失值,以及插值法和機器學習算法的應用方法。Pandas 缺失值處理基礎方法、進階填充缺失值、鐵達尼號存活預測資料集的示例和機器學習算法填補缺失值方法的介紹與使用。
Thumbnail
資料前處理(Data Preprocessing)中的重要角色-缺失值處理。從檢查、刪除到填充缺失值,以及插值法和機器學習算法的應用方法。Pandas 缺失值處理基礎方法、進階填充缺失值、鐵達尼號存活預測資料集的示例和機器學習算法填補缺失值方法的介紹與使用。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
在程式中,了解資料型態是相當重要的。 為什麽? 因為許多error,常常都是因為資料型態不正確所導致的。 舉個例子,在python中: a = 1 + 2 print(a) 結果就是3 a = = "1"+"2" print(a) 結果就是12 是不是差很多? 所以今天我來介
Thumbnail
在程式中,了解資料型態是相當重要的。 為什麽? 因為許多error,常常都是因為資料型態不正確所導致的。 舉個例子,在python中: a = 1 + 2 print(a) 結果就是3 a = = "1"+"2" print(a) 結果就是12 是不是差很多? 所以今天我來介
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
當我們在做很多處理時,結果可能會是List包住一些數值,例如找輪廓或連通域分析時,沒有剛好的特徵可能就會有List含(空值得)形式出現。 為了避免報錯,我們就要額外先做一些處理,先做判斷是否有值在往下一個階段。 all 和 any 是 Python 中用於檢查可迭代物件(如清單、元組、集合等)
Thumbnail
當我們在做很多處理時,結果可能會是List包住一些數值,例如找輪廓或連通域分析時,沒有剛好的特徵可能就會有List含(空值得)形式出現。 為了避免報錯,我們就要額外先做一些處理,先做判斷是否有值在往下一個階段。 all 和 any 是 Python 中用於檢查可迭代物件(如清單、元組、集合等)
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News