データ分析とマイニングのデータ洗浄(欠落値、異常値)
一般的にPIPにReadTimeoutErrorが現れるのはGFWに壁を与えられたためで、一般的にこのような問題に遭遇して、私たちは国内のミラーを選んで問題を解決することができます.
Windowsの下:C:Usersの下にpipフォルダを新規作成し、pipを作成します.iniファイルは、次のコードをコピーして保存します.
実はpythonのソースを清華のソースに変えて、問題を解決することができるはずです.
pymysqlとphpStudioのインストールを推奨
今からデータ洗浄実戦
Windowsの下:C:Usersの下にpipフォルダを新規作成し、pipを作成します.iniファイルは、次のコードをコピーして保存します.
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
実はpythonのソースを清華のソースに変えて、問題を解決することができるはずです.
pymysqlとphpStudioのインストールを推奨
今からデータ洗浄実戦
#
import pymysql
import numpy as npy
import pandas as pda
import matplotlib.pylab as pyl
conn=pymysql.connect(host="127.0.0.1",user="root",password="root",db="csdn")
sql="select * from hexun"
data=pda.read_sql(sql,conn)
print(data.describe())
#
''''''''' '''''''''''
# ①( )
data.isnull().sum() #
data.dropna()#
data.dropna(axis = 1)#
data.dropna(how = 'all')#
data.dropna(thresh = 4)# 4
data.dropna(subset = ['C'])#
# ②( ) data.fillna(0, inplace = True) DataFrame
data.fillna(0): 0
data.fillna(method='pad'):
data.fillna(df2.mean()):
#2.1 Imputer
from sklearn.preprocessing import Imputer
imr = Imputer(missing_values='NaN', strategy='mean', axis=0)#
imr = imr.fit(df)
imputed_data = imr.transform(df.values)
# ③ 0
print(len(data)) # ,count
# →
x=0
data["hits"][(data["hits"]==0)]=None #hits 0
for i in data.columns: #
for j in range(len(data)):
if(data[i].isnull())[j]:
data[i][j]="2" #
x+=1
print(x) #
''''''''' '''''''''''
pyl.rcParams['font.sans-serif']=['SimHei'] #
pyl.rcParams['axes.unicode_minus']=False #
# ( , )
data2=data.T
hits=data2.values[3] #
comt=data2.values[4]#
pyl.plot(hits,comt,'*r')
pyl.title(" ")
pyl.xlabel(" ")
pyl.ylabel(" ")
pyl.show()
# >30000, >230
line=len(data.values)
columns=len(data.values[0])
da=data.values
for i in range(0,line):
for j in range(0,columns):
if(da[i][3]>30000): #
print(da[i][j]) #
da[i][j]=36 # /
if(da[i][4]>230): #
print(da[i][j]) #
da[i][j]=2 #
da2=da.T #
hits=da2[3]
comt=da2[4]
pyl.plot(hits,comt,'*c')
pyl.show
'''''''''''' ''''''''''''
hitsmax=da2[3].max()
hitsmin=da2[3].min()
comtmax=da2[4].max()
comtmin=da2[4].min()
# : -
hitsrg=hitsmax-hitsmin
comtrg=comtmax-comtmin
# : /
hitsdst=hitsrg/12
comtdst=comtrg/12
#
hitssty=npy.arange(hitsmin,hitsmax,hitsdst) # , ,
pyl.hist(da2[3],hitssty)
pyl.show()
#
comtsty=npy.arange(comtmin,comtmax,comtdst) # , ,
pyl.hist(da2[4],comtsty)
pyl.show()