博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据处理
阅读量:3898 次
发布时间:2019-05-23

本文共 2217 字,大约阅读时间需要 7 分钟。

(1)数据探索分析

代码7-1 把空值个数,最大值,最小值输出为excel表
(2)数据预处理
1.数据清洗 代码7-2 删除条件1:票价为空,条件2:票价为0,平均折扣价不为0,总飞行公里数大于0的记录的行
代码:先删除票价为空值的行,再保留票价不为0,总飞行公里数和平均折扣价为0的行
2.对数据进行标准化 代码7-3
(3)对客户聚类k-means(得到聚类中心点以及聚类的个数)代码7-4
代码7-1
import pandas as pd

datafile= ‘E:/python数据挖掘程序/chapter7/demo/data/air_data.csv’ #航空原始数据,第一行为属性标签

resultfile = ‘E:/python数据挖掘程序/chapter7/demo/tmp/explore.xls’ #数据探索结果表
#oserror,下面这两行是修改过的
f=open(datafile,“r”,encoding = ‘utf-8’)
data = pd.read_csv(f) #读取原始数据,指定UTF-8编码(需要用文本编辑器将数据装换为UTF-8编码)

explore = data.describe(percentiles = [], include = ‘all’).T #包括对数据的基本描述,percentiles参数是指定计算多少的分位数表(如1/4分位数、中位数等);T是转置,转置后更方便查阅

explore[‘null’] = len(data)-explore[‘count’] #describe()函数自动计算非空值数,需要手动计算空值数
#len(data) 62988减去一列,就是分别减去这列的每个数
#explore[‘null’]给explore添加了一列
explore = explore[[‘null’, ‘max’, ‘min’]]
explore.columns = [u’空值数’, u’最大值’, u’最小值’] #表头重命名
‘’‘这里只选取部分探索结果。
describe()函数自动计算的字段有count(非空值数)、unique(唯一值数)、top(频数最高者)、freq(最高频数)、mean(平均值)、std(方差)、min(最小值)、50%(中位数)、max(最大值)’’’

explore.to_excel(resultfile) #导出结果地址在resultfile显示的地址这

代码7-2
data = data[data[‘SUM_YR_1’].notnull()*data[‘SUM_YR_2’].notnull()] #票价非空值才保留
#data[‘SUM_YR_1’].notnull()*data[‘SUM_YR_2’].notnull()把不符合这条规则的行去掉

#只保留票价非零的,或者平均折扣率与总飞行公里数同时为0的记录。

index1 = data[‘SUM_YR_1’] != 0#index输出来为逻辑值
index2 = data[‘SUM_YR_2’] != 0
index3 = (data[‘SEG_KM_SUM’] == 0) & (data[‘avg_discount’] == 0) #该规则是“与”
data = data[index1 | index2 | index3] #该规则是“或”

data.to_excel(cleanedfile) #导出结果

代码7-3
import pandas as pd

datafile = ‘E:/python数据挖掘程序/chapter7/demo/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) #数据写入

代码7-4
import pandas as pd
from sklearn.cluster import KMeans #导入K均值聚类算法

inputfile = ‘E:/python数据挖掘程序/chapter7/demo/tmp/zscoreddata.xls’ #待聚类的数据文件

k = 5 #需要进行的聚类类别数

#读取数据并进行聚类分析

data = pd.read_excel(inputfile) #读取数据

#调用k-means算法,进行聚类分析

kmodel = KMeans(n_clusters = k, n_jobs = 4) #n_jobs是并行数,一般等于CPU数较好
kmodel.fit(data) #训练模型

kmodel.cluster_centers_ #查看聚类中心

kmodel.labels_ #查看各样本对应的类别

转载地址:http://toyen.baihongyu.com/

你可能感兴趣的文章
JNDI学习总结(一)——JNDI数据源的配置
查看>>
JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源
查看>>
JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
查看>>
JavaWeb学习总结(四十九)——简单模拟Sping MVC
查看>>
Struts1和Struts2的区别和对比(完整版)
查看>>
在Eclipse中初用lucene
查看>>
lucene在eclipse下运行
查看>>
eclipse 安装struts2 插件
查看>>
Liferay配置文件Tag标签参考
查看>>
JavaLiferay研究之十六:FCKeditor如何插入服务器上的资源?
查看>>
Liferay研究之十二:对Liferay框架的几点分析总结 收藏
查看>>
Eclipse快捷键大全(转载)
查看>>
Google爬虫如何抓取JavaScript的?
查看>>
SAP HANA SQL/MDX及TCP/IP端口介绍
查看>>
SAP HANA使用XS和HTTP创建proxy
查看>>
SAP HANA SLT在表中隐藏字段并传入HANA的方法
查看>>
SAP HANA关于触发器的深入理解
查看>>
CSDN要求必须绑定手机号
查看>>
SAP HANA查看某一用户最后登录时间及无效连接次数
查看>>
讲讲BW/4 HANA和BW on HANA的区别
查看>>