赞
踩
1.定义目标
2.获取数据(常用手段:爬虫获取、下载统计网站发布的数据)
3.数据探索:目的是及早发现数据的一些简单规律或特征。数据探索核心是:
(1)数据质量分析(跟数据清洗密切联系)
(2)数据特征分析(分布、对比、周期性、相关性、常见统计量等)
4.数据预处理(数据清洗【去除脏数据】、数据集成【集中】、数据变换【规范化】、数据规约【精简】)
数据清洗的目的是留下可靠数据,与数据探索没有严格先后顺序,经常在一个阶段进行。 数据清洗可以按如下步骤进行:
(1)缺失值处理(通过describe【所有有值的】与len【包含没有值的】直接发现、通过0数据发现【有些数据不能为0】)
(2)异常值处理(通过散点图发现)
一般遇到缺失值,处理方式为:删除、插补、不处理;
插补的方式主要有:均值插补、中位数插补、众数插补、固定值插补、最近数据插补、回归插补、拉格朗日插值、牛顿插值、分段插值等;
遇到异常值,一般处理方式为视为缺失值、删除、修补(平均数、中位数等)、不处理;
4.1 异常分析、分布分析
- import matplotlib.pylab as pyl
- import numpy as npy #数据
- import pandas as pda
- import pymysql
-
- conn=pymysql.connect(host="127.0.0.1",user="root",passwd="root",db="csdn")
- data=pda.read_sql(sql,conn)
- print(data.describe()) #括号不能省
- print(len(data)) #发现缺失值 先把价格为0的数据置为空,再把空值处置为中值
- #数据清洗
- #发现缺失值
-
- data["price"][data["price"]==0]=None
- for i in data.columns:
- for j in range(len(data)):
- if(data[i].isnull())[j]: #若为0 插补法
- data[i][j]="36"
- x+=1
- print(x) #处理的数据为0的数据个数
-
- #异常值处理 循环中设置一个阈值,大于阈值则认为是异常值
- #画散点图(横轴为价格,纵轴为评论数)
- data2=data.T
- price=data2.values[2] #得到价格 从0开始数的
- comt=data2.values[3] #得到评论数
- pyl.plot(price,comt,"o")
- pyl.show()
-
- #评论数异常>20万,价格异常>2300
- line=len(data.values) #行
- col=len(data.values[0]) #列
- da=data.values
- for i in range(0,line):
- for j in range(0,col):
- if(da[i][2]>2300):
- print(da[i][j]) #输出异常情况
- da[i][j]=36 #处理价格异常
- if(da[i][3]>200000):
- print(da[i][j]) #输出异常情况
- da[i][j]=58
- da2=da.T #挑出异常值后重新绘图
- price=da2[2]
- comt=da2[3]
- pyl.plot(price,comt,"o")
- pyl.show()
-
-
- #分布分析
- #极差:最大值-最小值
- #组距:极差/组数 (组数可取12)
- pricemax = da2[2].max()
- pricemin = da2[2].min()
- commentmax=da2[3].max()
- commentmin=da2[3].min()
-
- pricerg=pricemax-pricemin
- commentrg=commentmax-commentmin
-
- pricedst=price/12
- commentdst=commentrg/12
-
- #画价格的直方图
- pricesty=npy.arange(pricemin,pricemax ,pricedst)
- pyl.hist(da2[2],pricesty)
- pyl.show()
-
- #画评论的直方图
- commentsty=npy.arange(comm
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。