突出顯示 Pandas DataFrame 中的 NaN 值


在資料分析中,處理不完整或缺失資料是一個常見挑戰,解決這個問題的第一步是識別資料結構(如 Pandas DataFrame)中的 NaN(缺失)值。在 Pandas DataFrame 中,這些缺失值通常表示為 NaN(非數字)值,這可能是由於資料錄入、提取或處理過程中的各種錯誤造成的。然而,檢測和查明這些 NaN 值可能非常困難,尤其是在處理大型資料集時。

幸運的是,Pandas 提供了一系列有效的技術來檢測和管理缺失值。本文將探討多種在 Pandas DataFrame 中識別 NaN 值的方法,包括使用 isna()、notna() 和 info() 等內建函式,以及使用熱力圖視覺化缺失資料等高階方法。

如何在 Pandas DataFrame 中突出顯示 NaN 值?

為了識別 Pandas DataFrame 中的 NaN 值,我們可以透過內建函式和高階方法採用各種方法。讓我們深入探討這些技術的細節 -

內建函式

方法 1:isna()

此函式返回一個與輸入形狀相同的 DataFrame,其中每個元素如果為 NaN 值則為 True,否則為 False。您可以使用此函式來識別缺失值的位置。

isna() 函式返回一個與輸入形狀相同的 DataFrame,其中每個元素如果為 NaN 值則標記為 True,否則為 False。您可以使用此函式來識別缺失值的位置。

示例

import pandas as pd

# Creating a sample DataFrame
data = {'Column1': [1, 2, None, 4, 5], 'Column2': [6, None, 8, 9, 10]}
df = pd.DataFrame(data)

# Using isna() to identify NaN values
nan_df = df.isna()
print(nan_df)

輸出

    Column1  Column2
0    False    False
1    False     True
2     True    False
3    False    False
4    False    False

在生成的 DataFrame 中,True 值表示存在缺失值,而 False 值表示非缺失值或 NaN。

方法 2:notna()

與 isna() 類似,此函式也返回形狀相同的 DataFrame。但是,如果元素不是 NaN 值,則將其標記為 True,如果是缺失值,則標記為 False。

要應用 notna(),您可以簡單地將其呼叫到 DataFrame 或特定列上。生成的 DataFrame 將與原始 DataFrame 形狀相同,True 值表示非缺失值,False 值表示缺失值。

示例

import pandas as pd

# Creating a sample DataFrame
data = {'Column1': [1, 2, None, 4, 5], 'Column2': [6, None, 8, 9, 10]}
df = pd.DataFrame(data)
# Using notna() to identify non-NaN values
notnan_df = df.notna()
print(notnan_df)

輸出

Column1  Column2
0     True     True
1     True    False
2    False     True
3     True     True
4     True     True

在生成的 DataFrame 中,True 值表示存在非缺失值,而 False 值表示缺失值或 NaN。此方法可用於過濾、條件操作或檢查 Pandas DataFrame 中資料的完整性。

方法 3:info()

此方法提供 DataFrame 的摘要,包括每列中非空值的個數。透過檢查此摘要,您可以輕鬆識別包含缺失值的列。非空值計數較低的列表示存在 NaN 值。

示例

import pandas as pd

# Creating a sample DataFrame
data = {'Column1': [1, 2, None, 4, 5], 'Column2': [6, None, 8, 9, 10]}
df = pd.DataFrame(data)
# Using info() to get the summary
df.info()

輸出


RangeIndex: 5 entries, 0 to 4
Data columns (total 2 columns):
 #   Column   Non-Null Count  Dtype  
---  ------   --------------  -----  
 0   Column1  4 non-null      float64
 1   Column2  4 non-null      float64
dtypes: float64(2)
memory usage: 208.0 bytes

輸出提供了有關 DataFrame 的資訊,例如總行數 (5)、列名 ('Column1' 和 'Column2')、非空值計數 (兩列均為 4) 和資料型別 (float64)。此摘要透過將非空計數與總行數進行比較來幫助識別包含缺失值的列。

高階方法

方法 4:熱力圖視覺化

透過使用熱力圖視覺化缺失資料,您可以全面瞭解 DataFrame 中缺失值的分佈情況。熱力圖使用顏色漸變來表示每個單元格中 NaN 值的存在或不存在,使您可以識別缺失資料的模式或叢集。

示例

import pandas as pd

# Creating a sample DataFrame
data = {'Column1': [1, 2, None, 4, 5], 'Column2': [6, None, 8, 9, 10]}
df = pd.DataFrame(data)
import matplotlib.pyplot as plt
import seaborn as sns

# Creating a heatmap of missing values
sns.heatmap(df.isna(), cmap='viridis')
plt.show()

輸出

生成的熱力圖可視化了 DataFrame 中缺失值的分佈情況。黃色單元格表示存在缺失值 (NaN),使您可以識別跨列和行的缺失資料的模式或叢集。此視覺化有助於瞭解資料集中缺失值的程度和位置。

結論

總之,識別和突出顯示 Pandas DataFrame 中的 NaN 值對於資料分析至關重要。透過使用 isna() 和 notna() 等內建函式以及熱力圖視覺化等高階方法,我們可以有效地檢測和視覺化缺失資料,從而實現準確的資料處理和明智的決策。

更新於:2023年7月24日

274 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告