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刷投票的脚本实现代码
Nov 08 Python
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
对于Python中线程问题的简单讲解
Apr 03 Python
举例讲解Python程序与系统shell交互的方式
Apr 09 Python
Python循环语句中else的用法总结
Sep 11 Python
Python输入二维数组方法
Apr 13 Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
May 09 Python
Python变量格式化输出实现原理解析
Aug 06 Python
python 提高开发效率的5个小技巧
Oct 19 Python
PyQt5爬取12306车票信息程序的实现
May 14 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 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实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
激活 ActiveX 控件
2006/10/09 Javascript
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
基于jQuery的日期选择控件
2009/10/27 Javascript
jquery中ajax学习笔记3
2011/10/16 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
17个Python小技巧分享
2015/01/23 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
python 制作简单的音乐播放器
2020/11/25 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
耐克中国官方商城:Nike中国
2018/10/18 全球购物
忠诚教育心得体会
2014/09/03 职场文书
2014离婚协议书范文
2014/09/10 职场文书
2014年团支书工作总结
2014/11/14 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
高二数学教学反思
2016/02/18 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书