9. df.isna()方法-缺失值检测
包含在主题中
数据分析
【目录】
1. 不规则数据
2. 缺失值
3. `NaN`表示缺失值
4. df.isna()方法检测缺失值
5.课后练习
[文本]
学习时间:20分钟。
1.在清理不规则数据时,通常需要先进行预处理,去除不良部分。
数据分析类似于煮饭洗菜。在开始分析之前,首先处理不规则的数据(影响分析结果)。
常见的不规则数据主要分为三大类:
数据丢失
重复数据
异常数据2.缺失值缺失值是指部分数据因某种原因为空。
处理缺失值一般有两种方法:
删除缺失值并填充缺失值3.NaN代表缺失值【目标任务】
使用pd.DataFrame() 方法创建一个DataFrame 对象。这就需要传递字典类型的数据。
一些空值被随机传递给字典值。
空值被替换为None。
[代码示例]
#导入pandas库并缩写为pd
导入pandasaspd
#传递的数据类型是字典
#字典中的三个键name、age、grade是DataFrame对象的列索引。
#字典值是DataFrame对象的数据
#None 是一个特殊对象,表示空值或缺失值。
数据={
‘姓名’:[‘张三’、‘李四’、‘王五’、‘赵六’、‘钱七’、‘孙霸’、‘周九’、‘吴石’、‘郑四一’、 ‘ 软管12”],
‘年龄’ :[18,19,20,21,22,23,24,无,无,25],
‘分数’:[85,92,78,89,95,87,无,无,无,9999]
}
#通过实例化类来创建对象:对象名=类名()
#df 是对象名称,DataFrame 是类名称。
df=pd.DataFrame(数据)
#输出一个DataFrame对象
打印(df)
[终端输出]
姓名年龄年级
0 张三18.0 85.0
1 无名氏19.0 92.0
2 王武20.0 78.0
3 赵刘21.0 89.0
4 千奇22.0 95.0
5 松巴岛23.0 87.0
6 星期四24.0 NaN
7 吴思楠楠
8 甄世一南南
9 马十二25.0 9999.0
NaN 在Python 中常用来表示缺失值。
如果输出结果为NaN,则这里的内容为空,即没有数据。
[检查df.info DataFrame 对象中是否缺少数据]
#导入pandas库并缩写为pd
导入pandasaspd
数据={
‘姓名’:[‘张三’、‘李四’、‘王五’、‘赵六’、‘钱七’、‘孙霸’、‘周九’、‘吴石’、‘郑四一’、 ‘ 软管12”],
‘年龄’ :[18,19,20,21,22,23,24,无,无,25],
‘分数’:[85,92,78,89,95,87,无,无,无,9999]
}
df=pd.DataFrame(数据)
df.info()
[终端输出]
类“pandas.core.frame.DataFrame”
RangeIndex: 10 个条目,0-9
数据列(共3列):
# 列非空计数Dtype
— —— ————– —–
0 名称10 非空对象
1 年龄8 非空float64
2 得分7 非空float64
dtypes: float64(2), 对象(1)
内存使用量: 368.0+ 字节
使用df.info() 显示有关DataFrame 对象的信息。
你会看到的:
年龄列有8 个非空值。所以有两条空数据。
成绩栏中有7个非空数据。所以有3条空数据。
4.要使用df.isna()方法检测缺失值,我们首先需要找到缺失值。也就是说,您需要检查哪些列有缺失值。
在上一节中,您学习了如何使用df.info() 方法检查丢失的数据。
然而,仅输出一条缺失数据。
如果您想检查特定的缺失位置,可以使用df.isna() 方法。
.isna() 是pandas Dataframe 或Series 对象的一种方法,用于检测缺失值(NaN)。
【语法】
df.isna()
系列.isna()
您可以在.isna() 之前放置Dataframe 或Series 对象。
df.isna() 检测Dataframe 对象中的缺失值。
series.isna() 检测Series 对象中的缺失值。
[范围]
无参数
【返回值】
.isna() 方法返回一个与原始对象(数据帧或系列)形状相同的布尔对象。
每个元素都是一个布尔值,指示它是否为缺失值。
如果元素缺失则返回True,否则返回False。
一个简单粗暴的理解是:
False 单元格有内容。真正的细胞是空的。 【检查DataFrame对象中是否有缺失值】
#导入pandas库并缩写为pd
导入pandasaspd
数据={
‘姓名’:[‘张三’、‘李四’、‘王五’、‘赵六’、‘钱七’、‘孙霸’、‘周九’、‘吴石’、‘郑四一’、 ‘ 软管12”],
‘年龄’ :[18,19,20,21,22,23,24,无,无,25],
‘分数’:[85,92,78,89,95,87,无,无,无,9999]
}
df=pd.DataFrame(数据)
#检查DataFrame是否有缺失值
df.isna()
[终端输出]
姓名年龄年级0FalseFalseFalse1FalseFalse2FalseFalseFalse3FalseFalse4FalseFalse5FalseFalse6FalseFalseTrue7FalseTrueTrue8FalseTrueTrue9FalseFalseFalse9-15。
从两个列表创建一个Series对象并检测Series对象中缺失的值。
[列表创建系列对象]
#创建两个原始列表
松鼠
t_1=[1,2,3,4,5,6]
list_2=[9,8,7,6]
#创建一个系列对象
s=pd.series(list_1)+pd.series(list_2)
显示#temp_s
打印
[终端输出]
0 10.0
1 10.0
2 10.0
3 10.0
4 南
5 南
dtype: float64
代码分析请参考课后练习PDF笔记【2.系列对象-一维数据】。
【Series对象中缺失值的检测】
s.isna()
[终端输出]
0 错误
1 个错误
2 个错误
3 个错误
4 真实
5 真实
dtype: 布尔值
[完整代码]
#创建两个原始列表
list_1=[1,2,3,4,5,6]
list_2=[9,8,7,6]
#创建一个系列对象
s=pd.series(list_1)+pd.series(list_2)
检测#Series对象中的缺失值
s.isna()