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判断文件和文件夹是否存在的方法
May 21 Python
在django中使用自定义标签实现分页功能
Jul 04 Python
Python之读取TXT文件的方法小结
Apr 27 Python
实例讲解Python爬取网页数据
Jul 08 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
django orm 通过related_name反向查询的方法
Dec 15 Python
python检测IP地址变化并触发事件
Dec 26 Python
用Python识别人脸,人种等各种信息
Jul 15 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
python两个list[]相加的实现方法
Sep 23 Python
python四种出行路线规划的实现
Jun 23 Python
python基础之错误和异常处理
Oct 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 购物车实例(申精)
2009/05/11 PHP
PHP XML数据解析代码
2010/05/26 PHP
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
php中session退出登陆问题
2014/02/27 PHP
php反射学习之依赖注入示例
2019/06/14 PHP
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
jQuery实现的简单悬浮层功能完整实例
2017/01/23 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
浅谈Python中数据解析
2015/05/05 Python
Python实现查找系统盘中需要找的字符
2015/07/14 Python
python 性能提升的几种方法
2016/07/15 Python
Python上下文管理器和with块详解
2017/09/09 Python
python 阶乘累加和的实例
2019/02/01 Python
如何在python中执行另一个py文件
2020/04/30 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
2020/06/18 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
美国皮靴公司自1863年:The Frye Company
2016/11/30 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
yy婚礼司仪主持词
2014/03/14 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
计算机实训报告范文
2014/11/05 职场文书
高中物理教学反思
2016/02/19 职场文书
《失物招领》教学反思
2016/02/20 职场文书
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android