一、案例背景
本案例数据源自一家医院的医药销售数据
二、数据分析步骤
1提出问题
2理解数据
3数据清洗
4构建模型
5数据可视化
三、数据分析全过程
1)提出问题
根据医院的销售数据,分析以下业务指标
- 月均消费次数
- 月均消费金额
- 客单价
- 消费趋势
——数据导入
2)理解数据
明确数据行列数,以及数据类型
3)数据清理
- 选择子集
- 列名重命名
- 缺失数据处理
- 数据类型处理
- 数据类型转换
- 数据排序
- 异常值处理
(1) 选择子集
方法:subSalesDf=salesDf.loc[0:4,'购药时间':'销售数量']
注:本案例无需使用子集
(2)列名重命名
根据使用需求对列名进行重命名以便利识别和分析
(3)缺失数据处理
数据缺失处理方法:删除/插值
判断不可存在空值的列:销售时间和社保卡号
(4)数据类型转换
导入数据时使用object类型,现在根据需要对数据类型进行转化。
A 数值型
根据列表,判断销售数量,应收金融和实收金额应该为数值(浮点型)
B 日期型
根据列表,销售时间列所需数据为日期型数据(年月日),因此对销售时间的数据类型进行转换。
首先分割字符串,且需要定义分割函数对整个列的数据进行重复处理
其次,需要将销售时间数据类型,由字符串转成日期型
最后,在数据类型转换后,需要重新对数据缺失值进行处理。
(5)数据排序
按销售时间对数据进行排序,便于后面的分析。
排序后,需要对数据行重命名行名。
(6)异常值处理
首先,进行表述行统计,判断是否存在异常值
发现销售数量中最小值为负数,说明销售数量中存在异常值,进行删除处理
4)构建模型
业务指标1:月均消费次数=总消费次数 / 月份数(同一天,同个人——算一次)
业务指标2:月均消费金额=总消费金额/月份数
业务指标3:客单价=总消费金额/总消费次数
业务指标4: 消费趋势折线图
数据备份,同时将销售时间作为行名(index)
接着按月分组计算消费总额