这个专栏用来记录我在学习和实践《Python数据分析与挖掘实战》一书时的一些知识点总结和代码实现。
文章目录
背景和目标
通过客户分类,区分无价值客户、高价值客户,从而针对不同人群制定优化的个性化服务方案,采取不同的营销策略,将有限营销资源集中于高价值客户,实现企业利润的最大化目标。
准确的客户分类结果是企业优化营销资源的重要依据,客户分类越来越成为客户关系管理中急需解决的问题之一。
主要分为以下几个步骤:
1)借助航空公司客户数据,对客户进行分类
2)对不同的客户类别进行特征分析,比较不同类客户的客户价值
3)对不同价值的客户类别提供个性化服务,指定相应的营销策略
数据
客户基本信息
属性名称 | 属性说明 |
---|---|
MEMBER_NO | 会员卡号 |
FFP_DATE | 入会时间 |
FIRST_FLIGHT_DATE | 第一次飞行日期 |
GENDER | 性别 |
FFP_TIER | 会员卡级别 |
WORK_CITY | 工作地城市 |
WORK_PROVINCE | 工作地所在省份 |
WORK_COUNTRY | 工作地所在国家 |
AGE | 年龄 |
乘机信息
属性名称 | 属性说明 |
---|---|
FLIGHT_COUNT | 观测窗口内的飞行次数 |
LOAD_TIME | 观测窗口的结束时间 |
LAST_TO_END | 最后一次乘机时间至观测窗口结束时长 |
AVG_DISCOUNT | 平均折扣率 |
SUM_YR | 观测窗口的票价收入 |
SEG_KM_SUM | 观测窗口的总飞行公里数 |
LAST_FLIGHT_DATE | 末次飞行日期 |
AVG_INTERVAL | 平均乘机时间间隔 |
MAX_INTERVAL | 最大乘机时间间隔 |
积分信息
属性名称 | 属性说明 |
---|---|
EXCHANGE_COUNT | 积分兑换次数 |
EP_SUM | 总精英积分 |
PROMOPTIVE_SUM | 促销积分 |
PARTNER_SUM | 合作伙伴积分 |
POINTS_SUM | 总累计积分 |
POINT_NOTFLIGHT | 非乘机的积分变动次数 |
BP_SUM | 总基本积分 |
脚本
data_explore.py
#-*- coding: utf-8 -*-
# 对数据进行基本的探索
# 返回缺失值个数以及最大最小值
import pandas as pd
datafile = '../data/air_data.csv' # 航空原始数据,第一行为属性标签
resultfile = '../tmp/explore.xls' # 数据探索结果表
# 读取原始数据,指定UTF-8编码(需要用文本编辑器将数据装换为UTF-8编码)
data = pd.read_csv(datafile, encoding='utf-8')
# 包括对数据的基本描述,percentiles参数是指定计算多少的分位数表(如1/4分位数、中位数等);T是转置,转置后更方便查阅
explore = data.describe(percentiles=[], include='all').T
# print(explore)
# 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) # 导出结果
data_clean.py
#-*- coding: utf-8 -*-
# 数据清洗,过滤掉不符合规则的数据
import panda