0
点赞
收藏
分享

微信扫一扫

数据分析笔记 08数据清洗

数据清洗

读取文件 预处理数据集

脏数据就是由于记录或存储的原因,导致部分数据缺失 重复 异常 错误 没有分析意义就叫做脏数据
由于记录或读取的原因,在应该与数据的地方出现了空白,这就是缺失值
异常值就是不合理的数据,比如在应该全是正数出现了附属
在应该全是非零值的数据中出现了0
出现了不可能出现的数值等
重复值 在不应该重复的地方出现看异常的重复

识别并处理缺失值

在pandas中检查缺失值 可以用info() 判断那一列存在缺失值 再用isnull()函数 判断缺失值是在这一列哪一行 实现定位
直接用info 不用print info()输出内容 包含了数据集很多信息 包括每一列的非空值的个数
df.isnull()函数可以在一列中 找到哪一行是空值
生成一列布尔类型的series true表示缺失值所在的地方
三种方法:删除所在行 补全缺失值 重选数据集
删除所在行 drop()函数 删除确实的那一行 用于缺失值很少 对分析不构成决定性影响
补全缺失值 缺失值的数量较多 且缺失的这一行不是分析的重点 可以对缺失值进行补全 用到fillna()函数
#df[“platform”].fillna(“unknown”,inplace = True) 错
df[‘payment_provider’].fillna(“wxpay”,inplace=True)将空值用wxpay补充
dfPayNull = df[df[‘payment_provider’].isnull()]
使用drop函数,将包含所有payment_provider这一列缺失值的行删除
df.drop(index=dfPayNull.index, inplace = True)

isnull 返回一个布尔类型二维数组 空的为True

识别并处理异常值

异常值 值得是数据中不合理的值。这个不合理的值,通常需要自己对数据集进行判断,从而得到。

print(df[df["order_id"]<0])

当有多个内容需要判断 用isin()函数及其逆函数来判断

print(df['price'].isin([25.00,68.00,248.00]))

返回值是 True False
~将结果取反

dfPlatNull=df[df['playform']isnull()]
df.drop(index=dfPlatNull.indec,inplace=True)#True 表示是否生效

识别并处理 重复值

重复值值得是异常的重复请款 pandas的duplicated() 返回布尔类型的Series 出现相同的第二个及以后的数据判断为True 保证每个数据都保留一个唯一值

# TODO 使用布尔索引、duplicated函数,将order_id这一列的重复值筛选出来,赋值给变量dfOrderDu
dfOrderDu=df[df['order_id'].duplicated()]

注意

数据清洗的步骤要按照“确实值-异常值-重复值”的顺序进行 并且一列一列地处理

举报

相关推荐

0 条评论