在数据科学与分析领域,遇到缺失数据几乎是常态。缺失值会扭曲分析结果、导致错误结论,并打乱数据处理流程。妥善处理这些空缺对于维护分析的可靠性至关重要。本文将为您介绍在 Python 中识别 NaN(Not a Number)值的多种方法。
简短答案:使用 NumPy 的 isnan() 函数或 Pandas 的 .isna() 方法
在 Python 中处理缺失值,主要取决于您所使用的数据结构。
针对单个值或数组:使用 NumPy
NumPy 的 isnan() 函数非常适合在数值数组或单个值中识别 NaN,简单高效。来看一个示例:
import numpy as np
my_missing_value = np. nan
print ( np. isnan( my_missing_value) )
my_missing_array = np. array( [ 1 , np. nan, 3 ] )
nan_array = np. isnan( my_missing_array)
print ( nan_array)
技术支持 示例学习编辑器,按 Tab 键进入。按 Escape 键然后按 Tab 或 Shift+Tab 导航退出。
针对 DataFrame:使用 Pandas
Pandas 提供了 .isna() 和 .isnull() 等完整方法,用于在 DataFrame 或 Series 中检测缺失值,能够与数据分析流程无缝衔接。
import pandas as pd
import numpy as np
my_dataframe = pd. DataFrame( {
'Column1' : [ "I" , "Love" , np. nan] ,
'Column2' : [ "Python" , np. nan, "The Best" ]
} )
print ( my_dataframe. isna( ) )
技术支持 示例学习编辑器,按 Tab 键进入。按 Escape 键然后按 Tab 或 Shift+Tab 导航退出。
运行上述代码后,输出会如上所示,在更贴近日常场景的上下文中标示出 NaN 的存在。
NaN 与 None 的区别
在 Python 中区分 NaN 与 None 十分重要。NaN 是“非数值”的浮点数表示,主要用于数值计算;而 None 是 Python 的对象,表示值的缺失,类似其他语言中的 null。NaN 常见于数学或科学计算场景,而 None 更为通用,用于表示数据的缺省。
在 Python 中检查 NaN 的 4 种方法
在数据预处理阶段定位缺失值是关键步骤。下面结合先前的示例,介绍四种在 Python 中检查 NaN 的实用方法。
1. 使用 np.isnan() 检查 NaN
如前所述,NumPy 为识别单个值与数组中的 NaN 提供了简洁的方法,对数值数据分析十分重要。
import numpy as np
print ( np. isnan( np. nan) )
my_array = np. array( [ 1 , 5 , np. nan] )
print ( np. isnan( my_array) )
技术支持 示例学习编辑器,按 Tab 键进入。按 Escape 键然后按 Tab 或 Shift+Tab 导航退出。
2. 使用 pd.isna() 检查 NaN
Pandas 让从标量到复杂 DataFrame 的 NaN 检测更加简便,在数据处理任务中极具价值。
import numpy as np
import pandas as pd
print ( pd. isna( np. nan) )
my_series = pd. Series( [ "Python" , np. nan, "The Best" ] )
print ( my_series. isna( ) )
my_dataframe = pd. DataFrame( {
'Column1' : [ "I" , "Love" , np. nan] ,
'Column2' : [ "Python" , np. nan, "The Best" ]
} )
print ( pd. isna( my_dataframe) ) 技术支持 示例学习编辑器,按 Tab 键进入。按 Escape 键然后按 Tab 或 Shift+Tab 导航退出。
3. 在 DataFrame 中使用 Pandas 的 .isna() 或 .isnull() 方法检查 NaN
Pandas 的 DataFrame 还提供 .isna() 与 .isnull() 方法,可轻松定位数据集中各处的缺失值,清晰呈现数据完整性。
import numpy as np
import pandas as pd
my_dataframe = pd. DataFrame( {
'Column1' : [ "I" , "Love" , np. nan] ,
'Column2' : [ "Python" , np. nan, "The Best" ]
} )
print ( my_dataframe. isna( ) )
print ( my_dataframe. isnull( ) )
技术支持 示例学习编辑器,按 Tab 键进入。按 Escape 键然后按 Tab 或 Shift+Tab 导航退出。
4. 在 DataFrame 中使用 math.isnan() 检查 NaN
对于单个数值的检查,math.isnan() 提供了简单而有效的方案,尤其适用于处理纯 Python 数据类型时。
import math
my_number = float ( 'nan' )
print ( math. isnan( my_number) )
技术支持 示例学习编辑器,按 Tab 键进入。按 Escape 键然后按 Tab 或 Shift+Tab 导航退出。
结语与更多资源
识别并管理 NaN 值是清洗与准备数据以供分析的基础环节。无论您处理的是数组、Series,还是 DataFrame,理解并掌握 Python 中应对缺失数据的工具与方法都至关重要。若想进一步学习,欢迎查看以下资源:
Adel 是一位数据科学教育者、演讲者,以及 DataCamp 的媒体副总裁。他推出了多门关于数据分析、机器学习和数据工程的课程与直播培训,热衷于在组织内推广数据技能与数据素养,并关注技术与社会的交汇。他拥有数据科学与商业分析硕士学位。闲暇时,您常能发现他陪他的猫 Louis 一起玩耍。
DataCamp 媒体副总裁|DataFramed 播客主持人
在数据科学与分析领域,遇到缺失数据几乎是常态。缺失值会扭曲分析结果、导致错误结论,并打乱数据处理流程。妥善处理这些空缺对于维护分析的可靠性至关重要。本文将为您介绍在 Python 中识别 NaN(Not a Number)值的多种方法。
简短答案:使用 NumPy 的
isnan()函数或 Pandas 的.isna()方法在 Python 中处理缺失值,主要取决于您所使用的数据结构。
针对单个值或数组:使用 NumPy
NumPy 的
isnan()函数非常适合在数值数组或单个值中识别 NaN,简单高效。来看一个示例:针对 DataFrame:使用 Pandas
Pandas 提供了
.isna()和.isnull()等完整方法,用于在 DataFrame 或 Series 中检测缺失值,能够与数据分析流程无缝衔接。运行上述代码后,输出会如上所示,在更贴近日常场景的上下文中标示出 NaN 的存在。
NaN与None的区别在 Python 中区分
NaN与None十分重要。NaN是“非数值”的浮点数表示,主要用于数值计算;而None是 Python 的对象,表示值的缺失,类似其他语言中的 null。NaN常见于数学或科学计算场景,而 None 更为通用,用于表示数据的缺省。在 Python 中检查 NaN 的 4 种方法
在数据预处理阶段定位缺失值是关键步骤。下面结合先前的示例,介绍四种在 Python 中检查
NaN的实用方法。1. 使用 np.isnan() 检查 NaN
如前所述,NumPy 为识别单个值与数组中的
NaN提供了简洁的方法,对数值数据分析十分重要。2. 使用
pd.isna()检查NaNPandas 让从标量到复杂 DataFrame 的 NaN 检测更加简便,在数据处理任务中极具价值。
3. 在 DataFrame 中使用 Pandas 的
.isna()或.isnull()方法检查NaNPandas 的 DataFrame 还提供
.isna()与.isnull()方法,可轻松定位数据集中各处的缺失值,清晰呈现数据完整性。4. 在 DataFrame 中使用
math.isnan()检查NaN对于单个数值的检查,
math.isnan()提供了简单而有效的方案,尤其适用于处理纯 Python 数据类型时。结语与更多资源
识别并管理 NaN 值是清洗与准备数据以供分析的基础环节。无论您处理的是数组、Series,还是 DataFrame,理解并掌握 Python 中应对缺失数据的工具与方法都至关重要。若想进一步学习,欢迎查看以下资源: