首页 > 代码库 > 航空公司客户价值分析
航空公司客户价值分析
根据抽取的数据,进行数据探索分析,本案例的探索分析,主要是缺失值分析和异常值分析,通过观察数据,我们得知,数据存在票价为空值,票价最小值为0,折扣率最小值为0,总飞行公里数大于0的情况。
票价为空,可能是客户不存在乘机记录造成的,其它客户可能是因为客户乘坐0折机票或者积分兑换产生的。
然后计算出每个属性对应的空值的属性和最大值和最小值,然后再进行数据的清洗和变换,数据探索的代码如下:
# -*- coding: utf-8 -*-import pandas as pdinputfile=‘F:\\python数据挖掘\\chapter7\\demo\\data\\air_data.csv‘outputfile=‘F:\\python数据挖掘\\chapter7\\demo\\tmp\\tansuo.xls‘data=pd.read_csv(inputfile,encoding=‘utf-8‘)tansuo=data.describe(percentiles=[],include=‘all‘).Ttansuo[‘null‘]=len(data)-tansuo[‘count‘]tansuo=tansuo[[‘null‘,‘max‘,‘min‘]]tansuo.columns=[u‘空值数‘,u‘最大值‘,u‘最小值‘]tansuo.to_excel(outputfile)#print(tansuo)
得出的结果为:各个属性的空值数和最大值和最小值,保存到相对应的路径。
对数据的清洗:
去掉票价为空值,保存票价不为o,然后折扣为0,总的飞行路线为0的情况。
最后得出结果,保存到excel文档中。
相对应的代码如下:
# -*- coding: utf-8 -*-import pandas as pdinputfile=‘F:\\python数据挖掘\\chapter7\\demo\\data\\air_data.csv‘outputfile=‘F:\\python数据挖掘\\chapter7\\demo\\tmp\\clean_data.xls‘data=pd.read_csv(inputfile,encoding=‘utf-8‘)data=data[data[‘SUM_YR_1‘].notnull()*data[‘SUM_YR_2‘].notnull()]index=data[‘SUM_YR_1‘]!=0index1=data[‘SUM_YR_2‘]!=0index2=(data[‘avg_discount‘]==0) & (data[‘SEG_KM_SUM‘]==0)clean=data[index | index1 | index2]#print(clean)clean.to_excel(outputfile)
因为给出的数据太多,所以需要进行数据规约:
数据规约如下:
进行提取主要影响的因素,进行数据的规约,最后根据这个数据进行模型构建,最后得出结果:
首先涉及几个因素,主要是时间的提取天数:
计算时间的天数,可以根据numpy.timedelta64进行计算得出:
结果为:
res = d_load - d_ffpdata[‘L‘] = res.map(lambda x: x / np.timedelta64(30 * 24 * 60, ‘m‘))
数据规约如下:
import numpy as npimport pandas as pdinputfile=‘F:\\python数据挖掘\\chapter7\\demo\\tmp\\clean_data.xls‘outputfile=‘F:\\python数据挖掘\\chapter7\\demo\\tmp\\zs_data.xls‘data=pd.read_excel(inputfile,encoding=‘utf-8‘)#data = http://www.mamicode.com/pd.read_excel(inputfile, encoding=‘utf-8‘)data = http://www.mamicode.com/data[[‘LOAD_TIME‘, ‘FFP_DATE‘, ‘LAST_TO_END‘, ‘FLIGHT_COUNT‘, ‘SEG_KM_SUM‘, ‘avg_discount‘]]# data[‘L‘]=pd.datetime(data[‘LOAD_TIME‘])-pd.datetime(data[‘FFP_DATE‘])# data[‘L‘]=int(((parse(data[‘LOAD_TIME‘])-parse(data[‘FFP_ADTE‘])).days)/30)####这四行代码费了我3个小时d_ffp = pd.to_datetime(data[‘FFP_DATE‘])d_load = pd.to_datetime(data[‘LOAD_TIME‘])res = d_load - d_ffpdata[‘L‘] = res.map(lambda x: x / np.timedelta64(30 * 24 * 60, ‘m‘))data[‘R‘] = data[‘LAST_TO_END‘]data[‘F‘] = data[‘FLIGHT_COUNT‘]data[‘M‘] = data[‘SEG_KM_SUM‘]data[‘C‘] = data[‘avg_discount‘]data = data[[‘L‘, ‘R‘, ‘F‘, ‘M‘, ‘C‘]]data.to_excel(outputfile)print(‘finish‘)
存入的结果为:
接下来进行数据的标准化:
而且更改列名:
# -*- coding: utf-8 -*-import numpy as npimport pandas as pdinputfile=‘F:\\python数据挖掘\\chapter7\\demo\\tmp\\zs_data.xls‘outputfile=‘F:\\python数据挖掘\\chapter7\\demo\\tmp\\zs_code_data.xls‘data=pd.read_excel(inputfile,encoding=‘utf-8‘)data=data-data.mean(axis=0)/data.std(axis=0)data.columns=[‘Z‘+i for i in data.columns]#print(data.columns)data.to_excel(outputfile)print(‘finish‘)
得出的结果为:
接下来就是对模型的构建,因为需要判断客户的价值,所以就分为几种客户,根据类别,可以给聚类中心赋值为5
航空公司客户价值分析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。