航空公司客户价值分析
数据探索分析
对于数据进行简单的统计量的分析,对于数据有个整体的大概认识
datafile = 'G:/python/taidi/data_code/chapter7/demo/data/air_data1.csv'
resultfile = 'G:/python/taidi/data_code/chapter7/demo/data/explore.xls'
import pandas as pd
data = pd.read_csv(datafile, encoding = 'utf-8')
explore = data.describe(percentiles = [], include = 'all').T #per参数是指定计算多少的分位数;T是转置,方便查阅
explore['null'] = len(data)-explore['count'] #describe会自动计算非空值数,空值数量需要手动计算
explore = explore[['null','max','min']]
explore.columns = [u'空值数',u'最大值',u'最小值'] #表头重命名,只选取部分探索结果
explore.to_excel(resultfile)
需要注意的是,只要涉及到文件的编码问题就一定会报错,需要手动转换文件的编码格式。
数据的预处理
数据清洗
- 丢弃票价为空的记录
- 丢弃票价为0,平均折扣率不为0、总飞行公里数大于0的记录
# 数据清洗,过滤所有不符合要求的数据
import pandas as pd
datafile='G:/python/taidi/data_code/chapter7/demo/data/air_data1.csv'
cleanedfile='G:/python/taidi/data_code/chapter7/demo/data/data_cleaned.xls'
data = pd.read_csv(datafile, encoding = 'utf-8')
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_excel(cleanedfile)
这里面我掌握地比较生疏的是dataframe的运算
data=data[data['SUM_YR_1'].notnull()*data['SUM_YR_2'].notnull()] #票价值非空才保留
这里面data[‘SUM_YR_1’].notnull()返回值是一个包含布尔值的Series,两个Series相乘,只保留同为True的值。
属性规约以及数据变换
只需保留对于分析有意义的指标,不需要的可以删除。有的指标没有直接给出但是可以经过已有的数据计算得到。
标准差标准化
。。。