python实现数据清洗(缺失值与异常值处理)


Posted in Python onDecember 02, 2019

1。 将本地sql文件写入mysql数据库

本文写入的是python数据库的taob表

source [本地文件]

python实现数据清洗(缺失值与异常值处理)

其中总数据为9616行,列分别为title,link,price,comment

2。使用python链接并读取数据

查看数据概括

#-*- coding:utf-8 -*-
#author:M10
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import mysql.connector
conn = mysql.connector.connect(host='localhost',
            user='root',
            passwd='123456',
            db='python')#链接本地数据库
sql = 'select * from taob'#sql语句
data = pd.read_sql(sql,conn)#获取数据
print(data.describe())

说明数据的导入是正确的,简单的分析发现问题并不是这么简单,因为comment均值562可能偏大,最大评论数454037也可能出现错误,price价格为0也不太可能出现。

price    comment
count 9616.00000  9616.000000
mean   64.49324   562.239601
std   176.10901  6078.909643
min    0.00000    0.000000
25%   20.00000   16.000000
50%   36.00000   58.000000
75%   66.00000   205.000000
max  7940.00000 454037.000000

3。缺失值处理

将价格为0的值设置为中位数36

#-*- coding:utf-8 -*-
#author:M10
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import mysql.connector
conn = mysql.connector.connect(host='localhost',
            user='root',
            passwd='123456',
            db='python')#链接本地数据库
sql = 'select * from taob'#sql语句
data = pd.read_sql(sql,conn)#获取数据

data['price'][data['price']==0]=None
x = 0
for i in data.columns:
  for j in range(len(data)):
    if (data[i].isnull()) [j]:
      data[i][j]='36'
      x+=1
print(x)
#44

结果显示修改了44行的数据。

4。异常值处理

#-*- coding:utf-8 -*-
#author:M10
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import mysql.connector
conn = mysql.connector.connect(host='localhost',
            user='root',
            passwd='123456',
            db='python')#链接本地数据库
sql = 'select * from taob'#sql语句
data = pd.read_sql(sql,conn)#获取数据
#缺失值处理
data['price'][data['price']==0]=None
x = 0
for i in data.columns:
  for j in range(len(data)):
    if (data[i].isnull()) [j]:
      data[i][j]='36'
      x+=1
print(x)
#异常值处理
#绘制散点图,价格为横轴
data1 = data.T#转置
price = data1.values[2]
comment = data1.values[3]
plt.plot(price,comment,'o')
plt.show()
#print(price)

结果如下图,价格为0左右时comment很大可能为异常值,comments为0时,价格极大这个有可能的。

python实现数据清洗(缺失值与异常值处理)

接下来处理评论数异常值,假设异常值分割线设置为20w,

#-*- coding:utf-8 -*-
#author:M10
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import mysql.connector
conn = mysql.connector.connect(host='localhost',
            user='root',
            passwd='123456',
            db='python')#链接本地数据库
sql = 'select * from taob'#sql语句
data = pd.read_sql(sql,conn)#获取数据
#缺失值处理
data['price'][data['price']==0]=None
x = 0
for i in data.columns:
  for j in range(len(data)):
    if (data[i].isnull()) [j]:
      data[i][j]='36'
      x+=1
print(x)
#异常值处理
da = data.values#重新赋值data
#异常值处理,将commments大于200000的数据comments设置为58
cont_clou = len(da)#获取行数
#遍历数据进行处理
for i in range(0,cont_clou):
  if(data.values[i][3]>200000):
    #print(data.values[i][3])
    da[i][3]='58'
    #print(da[i][3])

#绘制散点图,价格为横轴
data1 = da.T#转置
price = data1[2]
comment = data1[3]
plt.plot(price,comment,'o')
plt.xlabel('price')
plt.ylabel('comments')
plt.show()

处理后的输出结果为:

python实现数据清洗(缺失值与异常值处理)

以上这篇python实现数据清洗(缺失值与异常值处理)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python re正则表达式模块(Regular Expression)
Jul 16 Python
利用python获取某年中每个月的第一天和最后一天
Dec 15 Python
关于反爬虫的一些简单总结
Dec 13 Python
python3.6利用pyinstall打包py为exe的操作实例
Oct 31 Python
解决Python下imread,imwrite不支持中文的问题
Dec 05 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
Python处理session的方法整理
Aug 29 Python
Python timer定时器两种常用方法解析
Jan 20 Python
python实现猜单词游戏
May 22 Python
Pycharm常用快捷键总结及配置方法
Nov 14 Python
Python中的 Set 与 dict
Mar 13 Python
python字符串反转的四种方法详解
Dec 02 #Python
python实现两个一维列表合并成一个二维列表
Dec 02 #Python
利用python实现冒泡排序算法实例代码
Dec 01 #Python
Python函数的默认参数设计示例详解
Dec 01 #Python
python线程定时器Timer实现原理解析
Nov 30 #Python
python线程信号量semaphore使用解析
Nov 30 #Python
Python一行代码解决矩阵旋转的问题
Nov 30 #Python
You might like
PHP也可以?成Shell Script
2006/10/09 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
2013/06/19 Javascript
JS实现点击下载的小例子
2013/07/10 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
3种不同的ContextMenu右键菜单实现代码
2016/11/03 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
python根据路径导入模块的方法
2014/09/30 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
python多任务之协程的使用详解
2019/08/26 Python
对django layer弹窗组件的使用详解
2019/08/31 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
没编程基础可以学python吗
2020/06/17 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
商务专员岗位职责范本
2014/06/29 职场文书
个人自荐书怎么写
2015/03/26 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
食品卫生管理制度
2015/08/06 职场文书
期中考试后的感想
2015/08/07 职场文书
八年级作文之友情
2019/11/25 职场文书
golang正则之命名分组方式
2021/04/25 Golang