因学习中发现《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_) #查看各样本对应的类别