一、pandas 判断缺失值
# pandas 提供了两组方法,是否判断为空
#isnull 或isna() nonull 或者notna
import pandas as pd
# 判断是否为空
print(pd.isnull(NAN)) # True
print(pd.isnull(NaN)) # True
print(pd.isnull(nan)) # True
print(pd.isnull(10)) # False
print('-' * 31)
print(pd.isna(NAN)) # True
print(pd.isna(NaN)) # True
print(pd.isna(nan)) # True
print(pd.isna(10)) # False
二、导入数据
1.导入泰坦尼克号包
# 加载数据,准备的是泰坦尼克号的测试数据
train = pd.read_csv('data/titanic_train.csv')
2.展示部分数据
train.head()
2.1 查看是否获救的数据 即查看Survived列的值
train['Survived'].value_counts() #分组并计数
# 1 是获救的 0是没有获救的
2.2 查看每列的信息,缺失等
# 导包 通过missingno 库 查看空值
import missingno as msno
msno.bar(train) # 柱状图
2.3 统计非空值个数
train1 = train.copy()
# 具体的删除动作,subset: 删除时,参考哪列的值. how:删除方式 ,any 任意一项为空即删除 all 所有为空才删除 inplace 是是否替换源数据
train1.dropna(subset=['Age'],how= 'any',inplace=True)
train1['Age'].isnull().count()
train1
age里面的空值被删除,为后继添加数据,方便预测
3. 添加缺失值
# 填充缺失值
# 解释 填充缺失值就是我们自己估一个值 然后填充到NaN的部分
# 场景一: 非时间序列填充
# 填充一个平均值
# 用平均值,填充空值
train_mean = train.copy()
# 用平均值填充空值
train_mean.fillna(train_mean['Age'].mean(),inplace=True)
Age数据中的空值被35填充
1.统计空值的个数
train_constant.isnull().count() #只要非null 就加一
已经无缺失值 被平均值填满
2.柱状图展示数据
总结
在做数据处理的时候数据难免会有丢失,以至于失去参考价值,我们可以手动添加一些估值,方法很多本文章只用平均值进行了填充.