文章目录
数据预处理
数据常见的预处理方法 (缺失值处理, 异常值剔除,归一化,离散化 等)
这一篇文章主要介绍缺失值处理\异常值处理 主要是因为他们有比较相似的处理流程.
缺失值处理
包括记录缺失\字段信息缺失, 对数据分析有较大的影响, 导致不确定性增加.
选用哪种方法需要较多的实践经验.
缺失值处理方法:
删除记录\数据插补\不处理
01 判定是否有缺失值 .isnull() .notnull()
s = pd.Series([12,33,45,23,np.nan,np.nan,66,54,np.nan,99])
df = pd.DataFrame({
'value1':[12,33,45,23,np.nan,np.nan,66,54,np.nan,99,190],
'value2':['a','b','c','d','e',np.nan,np.nan,'f','g',np.nan,'g']})
# 判定是否有缺失值, 返回True False
print(s.isnull())
print(df.isnull())
print(df["value2"].isnull())
如果要知道有多少条数据是有null值的
df["value2"].isnull().sum() 返回True的求和
如果要查询所有列的缺失值情况
df.isnull().sum() 会得到每一列缺失值的总数
02 筛选非缺失值
# 查看缺失项 意义不大
print(df[df["value1"].isnull()])
# 筛选非缺失值 用的比较多
print(df[df["value1"].notnull()])
print(df[df["value1"].isnull()==False])
03 删除缺失值 dropna
可用于Series DataFrame, 存在inplace参数, 为True的话, 改变自身值.
s = pd.Series([12,33,45,23,np.nan,np.nan,66,54,np.nan,99])
df = pd.DataFrame({
'value1':[12,33,45,23,np.nan,np.nan,66,54,np.nan,99,190],
'value2':