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应用03 使用PyQT制作视频播放器实例
Dec 07 Python
Python数据结构与算法之完全树与最小堆实例
Dec 13 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
Python实现正则表达式匹配任意的邮箱方法
Dec 20 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
Python3 实现文件批量重命名示例代码
Jun 03 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
pycharm重命名文件的方法步骤
Jul 29 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
Aug 07 Python
解决Python3下map函数的显示问题
Dec 04 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
May 11 Python
Python爬虫之Selenium实现窗口截图
Dec 04 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
重置版战役片段
2020/04/09 魔兽争霸
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
PHP模拟QQ登录的方法
2015/07/29 PHP
PHP 实现的将图片转换为TXT
2015/10/21 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
javascript 内存回收机制理解
2011/01/17 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
2015/08/17 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
Win8下python3.5.1安装教程
2020/07/29 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
python 实现视频 图像帧提取
2019/12/10 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
应付会计岗位职责
2013/12/12 职场文书
房地产开发计划书
2014/01/10 职场文书
时尚休闲吧创业计划书
2014/01/25 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
银行贷款收入证明
2014/10/17 职场文书
前台接待岗位职责
2015/02/03 职场文书
教你部署vue项目到docker
2022/04/05 Vue.js