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的struct模块中进行数据格式转换的方法
Jun 17 Python
浅析python中SQLAlchemy排序的一个坑
Feb 24 Python
Python制作Windows系统服务
Mar 25 Python
Python自动化运维之IP地址处理模块详解
Dec 10 Python
使用Python微信库itchat获得好友和群组已撤回的消息
Jun 24 Python
Python检查和同步本地时间(北京时间)的实现方法
Dec 03 Python
python 判断矩阵中每行非零个数的方法
Jan 26 Python
解决python Markdown模块乱码的问题
Feb 14 Python
django实现web接口 python3模拟Post请求方式
Nov 19 Python
Python新手如何进行闭包时绑定变量操作
May 29 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
python运算符之与用户交互
Apr 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的FTP学习(四)
2006/10/09 PHP
php基于base64解码图片与加密图片还原实例
2014/11/03 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
PHP const定义常量及global定义全局常量实例解析
2020/05/28 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
js实现数组转换成json
2015/06/26 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
Angular2学习教程之组件中的DOM操作详解
2017/05/28 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
angular4应用中输入的最小值和最大值的方法
2019/05/17 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
Python实现学校管理系统
2018/01/11 Python
使用Python更换外网IP的方法
2018/07/09 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
如何用python免费看美剧
2020/08/11 Python
python 决策树算法的实现
2020/10/09 Python
python中spy++的使用超详细教程
2021/01/29 Python
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
奶茶店创业计划书范文
2014/01/17 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
2015年党风廉政建设责任书
2015/01/29 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书