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处理python编码问题
Mar 13 Python
web.py在模板中输出美元符号的方法
Aug 26 Python
Python3.2中Print函数用法实例详解
May 19 Python
浅析Python 中整型对象存储的位置
May 16 Python
python daemon守护进程实现
Aug 27 Python
python实现图片彩色转化为素描
Jan 15 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
python 实现屏幕录制示例
Dec 23 Python
如何利用python检测图片是否包含二维码
Oct 15 Python
Python Pandas list列表数据列拆分成多行的方法实现
Dec 14 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
Jan 27 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 22 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
虫族 Zerg 历史背景
2020/03/14 星际争霸
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
JQueryEasyUI datagrid框架的进阶使用
2013/04/08 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
Python可跨平台实现获取按键的方法
2015/03/05 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
用TensorFlow实现多类支持向量机的示例代码
2018/04/28 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
浅析Django中关于session的使用
2019/12/30 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
HTML5实践-图片设置成灰度图
2012/11/12 HTML / CSS
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
致铅球运动员广播稿精选
2014/01/12 职场文书
优秀班组长事迹
2014/05/31 职场文书
安全标语大全
2014/06/10 职场文书
党的生日演讲稿
2014/09/10 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
教师读书笔记
2015/06/29 职场文书
退休欢送会主持词
2015/07/01 职场文书
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL