Python数据分析与挖掘实战 第7章

因学习中发现《Python数据分析与挖掘实战》中的代码,有些不能实现,自己学习的时候走了很多弯路,特此分享可直接实现的代码,希望能让有需要的朋友少走弯路。

7-1部分

#探索分析
import pandas as pd
inputfile='../7.2/air_data.csv'
outfile='../7.2/out_data.xls'
data=pd.read_csv(inputfile,encoding='utf-8')

data1=data.describe().T     #数据描述
data1['null']=len(data)-data1['count']
data1=data1[['null','max','min']]       #只保留空值、最大值、最小值
data1.columns=[u'空值',u'最大值',u'最小值']

data1.to_excel(outfile)
 
 

7-2部分

#数据清洗
#1、丢弃票价为空的记录
#2、丢弃(A:票价为0)且(B:平均折扣率不为0)且(C:总飞行公里数大于0的记录)
import pandas as pd
inputfile='../7.2/air_data.csv'
outfile='../7.2/cleaned_data.xls'
data=pd.read_csv(inputfile)

data=data[data['SUM_YR_1'].notnull()|data['SUM_YR_2'].notnull()]    #丢弃票价为空的记录

index1=(data['SUM_YR_1']!=0)|(data['SUM_YR_2']!=0)    #非A
index2=data['avg_discount']==0                         #非B
index3=data['SEG_KM_SUM']==0                            #非C

data=data[index1|index2|index3] #丢弃同时满足三个条件的记录=保留不满足三个条件中的任意一个条件的记录

data=data[['LOAD_TIME','FFP_DATE','LAST_TO_END','FLIGHT_COUNT','SEG_KM_SUM','avg_discount']]#属性规约
data.to_excel(outfile)

7-3部分

#数据标准差化
import pandas as pd
inputfile='../7.2/zscoredata.xls'
outfile='../7.2/zscoreddata.xls'
data=pd.read_excel(inputfile)

data=(data-data.mean(axis=0))/(data.std(axis=0))    #标准差化
data.columns=['Z'+i for i in data.columns]

data.to_excel(outfile,index=False)

7-4部分

 
 
#K-Means聚类算法
import pandas as pd
from sklearn.cluster import KMeans      #导入K均值聚类算法
inputfile='../7.2/zscoreddata.xls'
data=pd.read_excel(inputfile)
k=5

if __name__ == '__main__':
    kmodel=KMeans(n_clusters=k,n_jobs=4)    #调用K-means算法
    kmodel.fit(data)                        #训练模型

    print(kmodel.cluster_centers_)          #查看聚类中心
    print(kmodel.labels_)                   #查看各样本对应的类别




猜你喜欢

转载自blog.csdn.net/lonely2018/article/details/80167326