【小白从小学Python、C、Java】
【Python全国计算机等级考试】
【Python数据分析考试必会题】
● 标题与摘要
Python数据分析中的
数据预处理:缺失值处理
● 选择题
关于缺失值处理,以下哪一项说法错误。
A.不可以用isna()判断是否有缺失值
B.可以用notna()判断是否有缺失值
C.dropna()可用于删除含有空值的行或列
D.fillna()用于填充缺失值
欢迎大家转发,一起传播知识和正能量,帮助到更多人。期待大家提出宝贵改进建议,互相交流,收获更大。辛苦大家转发时注明出处(也是咱们公益编程交流群的入口网址),刘经纬老师共享知识相关文件下载地址为:http://liujingwei.cn
● 问题解析
1.在数据分析中数据预处理十分重要,缺失值的处理可分为删除缺失值和填充缺失值。
2.isna()和notna()可以用于判断是否有缺失值
3.NaN,None和NaT区别:
(1)在pandas中,如果其他的数据都是数值类型, pandas会把None自动替换成NaN。
(2)None能够直接被导入数据库作为空值处理, 包含NaN的数据导入时会报错。
(3)NaN为一般数据格式的缺失,表示此位置没有数据,NaT是时间格式数据的缺失,表示此位置没有时间数据。
4.当特征的缺失值占很大比重时,直接考虑删掉该特征。当缺失值不大时,可以考虑丢弃该样本或者填充缺失值,当该样本存在很多缺失值时,考虑丢弃该样本,其余情况进行缺失值填充。
5.缺失值处理
(1)dropna():默认参数,删除行,只要有空值就会删除,不替换。
(2)fillna():填充缺失值。在缺失值填充时,填充值是自定义的,对于数值型数据,最常用的填充值是用该【列】的均值。
● 附图
图一:isna()可用于判断是否有缺失值
图二:notna()可用于判断是否有缺失值
图三:dropna()可用于删除含有空值的行或列
图四:fillna()用于填充缺失值
● 附图代码
import pandas as pd
import numpy as np
df = pd.DataFrame([[np.nan, 2,None , 0],
[3, np.nan, np.nan, 1],
[6, 7, 1, 5],
[np.nan, 3, np.nan, 4]],
columns=list('ABCD'))
print(df)
#判断是否有缺失值
print(df.isna())
#判断是否有缺失值
print(df.notna())
#删除缺失值
print(df.dropna())
#填充缺失值
print(df.fillna(0))
#针对不同的列,用不同的值填充
trans={"A":9,"B":8,"C":7,"D":6}
print(df.fillna(value=trans))
#使用均值mean( )的方法进行缺失值填充
print(df.fillna(df.mean()))
● 正确答案
A