突出顯示 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() 等內建函式以及熱力圖視覺化等高階方法,我們可以有效地檢測和視覺化缺失資料,從而實現準確的資料處理和明智的決策。