小呆学数据分析——缺失值处理(一)

数据缺失值应用场景

在收集数据的时候常常会遇到数据缺失,可能由于漏填,可能由于传感器故障,也可能就是逻辑上应该的(比如未婚女生问卷上先生一栏肯定是空出来的缺失值)。不管如何缺失值需要在进一步数据分析前要进行相应的处理。

预览

本节处理缺失值采用了以下几个方案:

  1. 剔除
  2. 用固定值补充
  3. 用平均数补充
例子

小呆被交代一项任务,统计一下这个星期各个洗发露的销量,小呆打开营销同事的记录本shampoo_sales.csv,看到
shampoo_sales.csv

品牌,日期,销量
沙宣,星期一,200
沙宣,星期二,185
沙宣,星期三, 
沙宣,星期四,210
沙宣,星期五,201
沙宣,星期六,223
沙宣,星期日,195

欸,星期三的销量怎么没有了,可能是销售人员忘填了吧,算了先导入再说,于是写下代码

import pandas as pd
sales = pd.read_csv('shampoo_sales.csv', encoding = 'gb2312')
sl2 = sales.set_index(['品牌', '日期']).unstack()
print(sl2)

结果如下:

       销量                                       
日期    星期一 星期二    星期三    星期四     星期五    星期六    星期日
品牌                                              
沙宣     200.0  185.0     NaN     210.0     201.0    223.0     195.0

这个星期三的销量是缺失的,怎么办?要不就删除了吧,于是小呆写下代码

sl3 = sl2.dropna()
print(sl3)

结果如下:

       销量                                       
日期    星期一 星期二    星期四     星期五    星期六    星期日
品牌                                              
沙宣     200.0  185.0    210.0     201.0    223.0     195.0

好像缺少了星期三也怪怪的,那这个星期三的缺失值应该怎么补呢?小呆有点犯难,要不拿去年的日销量补一下,小呆写下代码

sl2[sl2.isna()] = 100
print(sl2)

结果如下:

       销量                                       
日期    星期一 星期二    星期三    星期四     星期五    星期六    星期日
品牌                                              
沙宣     200.0  185.0   100.0     210.0     201.0    223.0     195.0

这好像差别有点大啊,对了,这周在搞促销,看来用去年的日销量好像不太对,那要不就用这周的平均数吧,于是小呆把上面两行代码删掉,重新写下代码

sl2[sl2.isna()] = sales.dropna().mean()['销量']
print(sl2)

结果如下:

       销量                                       
日期    星期一 星期二    星期三    星期四     星期五    星期六    星期日
品牌                                              
沙宣     200.0  185.0   202.333333  210.0     201.0    223.0     195.0

嗯,这样看起来差不多了,于是小呆把整理好的结果交了上去。

文章导引列表:
机器学习

  1. 小瓜讲机器学习——分类算法(一)logistic regression(逻辑回归)算法原理详解
  2. 小瓜讲机器学习——分类算法(二)支持向量机(SVM)算法原理详解
  3. 小瓜讲机器学习——分类算法(三)朴素贝叶斯法(naive Bayes)
  4. 待续

数据分析

  1. 小呆学数据分析——使用pandas中的merge函数进行数据集合并
  2. 小呆学数据分析——使用pandas中的concat函数进行数据集堆叠
  3. 小呆学数据分析——pandas中的层次化索引
  4. 小呆学数据分析——使用pandas的pivot进行数据重塑
  5. 小呆学数据分析——用duplicated/drop_duplicates方法进行重复项处理
  6. 小呆学数据分析——缺失值处理(一)
  7. 小呆学数据分析——异常值判定与处理(一)
  8. 小瓜讲数据分析——数据清洗

数据可视化

  1. 小瓜讲数据分析——数据可视化工程(matplotlib库使用基础篇)
  2. 小瓜讲matplotlib高级篇——坐标轴设置(坐标轴居中、坐标轴箭头、刻度设置、标识设置)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的骆驼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值