python_data_analysis7
# -*- coding: utf-8 -*- import pandas as pd from sklearn.cluster import KMeans """ programmer_1-->关于原始数据的一些特征描述并保存为新表,使用describe函数 programmer_2-->对原始数据进行清理,对其中某些数据做运算,并进行保存 programmer_3-->标准化数据并进行保存 programmer_4-->使用KMeans对数据进行聚类分析 """ def programmer_1(): datafile = 'data/air_data.csv' resultfile = 'tmp/explore.xls' data = pd.read_csv(datafile, encoding='utf-8') # 包括对数据的基本描述,percentiles参数是指定计算多少的分位数表(如1/4分位数、中位数等);T是转置,转置后更方便查阅 explore = data.describe(percentiles=[], include='all').T # describe()函数自动计算非空值数,需要手动计算空值数 explore['null'] = len(data) - explore['count'] explore = explore[['null', 'max', 'min']] explore.columns = [u'空值数', u'最大值', u'最小值'] '''这里只选取部分探索结果。 describe()函数自动计算的字段有count(非空值数)、unique(唯一值数)、top(频数最高者)、freq(最高频数)、mean(平均值)、std(方差)、min(最小值)、50%(中位数)、max(最大值)''' explore.to_excel(resultfile) def programmer_2(): datafile = 'data/air_data.csv' cleanedfile = 'tmp/data_cleaned.csv' data = pd.read_csv(datafile, encoding='utf-8') # 使用乘法运算非空数值的数据,因为numpy不支持*运算,在这里换做&运算 data = data[data['SUM_YR_1'].notnull() & data['SUM_YR_2'].notnull()] # 只保留票价非零的,或者平均折扣率与总飞行公里数同时为0的记录。 index1 = data['SUM_YR_1'] != 0 index2 = data['SUM_YR_2'] != 0 index3 = (data['SEG_KM_SUM'] == 0) & (data['avg_discount'] == 0) # 该规则是“与” data = data[index1 | index2 | index3] # 该规则是“或” data.to_csv(cleanedfile) def programmer_3(): datafile = 'data/zscoredata.xls' zscoredfile = 'tmp/zscoreddata.xls' data = pd.read_excel(datafile) # 核心语句,实现标准化变换,类似地可以实现任何想要的变换。 data = (data - data.mean(axis=0)) / (data.std(axis=0)) data.columns = ['Z' + i for i in data.columns] data.to_excel(zscoredfile, index=False) def programmer_4(): inputfile = 'tmp/zscoreddata.xls' k = 5 data = pd.read_excel(inputfile) kmodel = KMeans(n_clusters=k, n_jobs=4) kmodel.fit(data) print(kmodel.cluster_centers_) # 查看聚类中心 print(kmodel.labels_) # 查看各样本对应的类别 if __name__ == "__main__": # programmer_1() # programmer_2() # programmer_3() # programmer_4() pass
#携程暑期实习#
Python 文章被收录于专栏
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发
