1.定义:在生成、采集、计算的过程中被遗漏的数据信息。
注意:表现为缺失状态(np.nan)的值不一定是缺失值,只有当无法溯源到原始信息时才为缺失值。
例如:在记录数时,张三的学号和李四的成绩B显示缺失,但根据业务逻辑判断,李四成绩B虽为缺考,但因记录为0;张三的学号为缺失值。
学生成绩表 | |||
姓名 | 学号 | 成绩A | 成绩B |
张三 | 85 | 62 | |
李四 | 2120341 | 95 | 缺考 |
2.缺失值的具体表现形式及检验方法
缺失值一般用None或Null表示,推荐使用Numpy(一种用于科学计算的库)中np.nan来表示缺失值。
import pandas as pd
df_one = pd.DataFrame({"A":[1, 2, 3], "B":[2, 3, np.nan]})
print(df_one)
A B
0 1 2.0
1 2 3.0
2 3 NaN
# 1.通过info()方法查看整体缺失值的情况
df_one.info()
#<class 'pandas.core.frame.DataFrame'>
#RangeIndex: 3 entries, 0 to 2
#Data columns (total 2 columns):
# Column Non-Null Count Dtype
#--- ------ -------------- -----
#0 A 3 non-null int64
#1 B 2 non-null float64
#dtypes: float64(1), int64(1)
#memory usage: 176.0 bytes
#2.通过isnull()或isna()方法检验每个值是否为缺失值,两种方法输出一样结果,如果是NaN,则返回True
print(df_one.isnull())
print(df_one.isna())
# A B
# 0 False False
# 1 False False
# 2 False True
# 3.按列统计缺失值,返回每列缺失值的个数
print(df_one.isnull().sum())
# A 0
# B 1
# dtype: int64
编写计算每一列缺失值占比的函数(方法):