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实现巡检系统(solaris)示例
Apr 02 Python
Python利用多进程将大量数据放入有限内存的教程
Apr 01 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
Feb 21 Python
python安装模块如何通过setup.py安装(超简单)
May 05 Python
python 判断文件还是文件夹的简单实例
Jun 10 Python
python用for循环求和的方法总结
Jul 08 Python
python关闭占用端口方式
Dec 17 Python
将python包发布到PyPI和制作whl文件方式
Dec 25 Python
解决Keras 自定义层时遇到版本的问题
Jun 16 Python
python 如何做一个识别率百分百的OCR
May 29 Python
python四种出行路线规划的实现
Jun 23 Python
python 使用pandas读取csv文件的方法
Dec 24 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 服务器调试 Zend Debugger 的安装教程
2009/09/25 PHP
php设计模式之简单工厂模式详解
2014/09/04 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
php eval函数一句话木马代码
2015/05/21 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
Python自定义主从分布式架构实例分析
2016/09/19 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
Python中 map()函数的用法详解
2018/07/10 Python
python for循环remove同一个list过程解析
2019/08/14 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
pycharm解决关闭flask后依旧可以访问服务的问题
2020/04/03 Python
python中的测试框架
2020/11/13 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
前端使用canvas生成盲水印的加密解密的实现
2020/12/16 HTML / CSS
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
《长征》教学反思
2014/04/27 职场文书
大学生个人先进事迹材料范文
2014/05/03 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL