数据分析的基本过程一般分为以下几个部分:
- 提出问题
- 获取并理解数据
- 数据清洗
- 构建模型
- 数据可视化
1.提出问题
在数据分析之前,我们先要明确分析目标,可以帮助我们更高效的选取数据,进行分析研究。
本次的分析目标是从销售数据中分析出以下业务指标:
1)月均消费次数
2)月均消费金额
3)客单价
4)消费趋势
有了分析目标,我们再来关注一下数据情况。
2.获取并理解数据
这里的数据集来源于微信公众号【数据分析1480】
我们先导入数据集,看看数据基本情况
1)导入数据处理相关库
import pandas as pd
2)导入数据,并理解数据
df=pd.read_excel('某医院2018年销售数据.xlsx')
df.head(5)
读取时默认将第一行作为标题行,打印前5行观察数据,发现数据表的基本信息包括"购药时间",“社保卡号”,“商品编码”,“商品名称”,“销售数量”,“应收金额”,“实收金额”。
#检查数据基本情况(缺失值、数据类型、行列情况等)
df.info()
行列:6578行x7列
缺失值:明显发现各项均小于6578,都存在缺失值
数据类型:各列数据类型object、float64…
#进行描述性统计
df.describe()
这里社保卡号和商品编号无实际意义,不考虑。
只看后三列,结果中最小值出现负数,需要关注
3.数据清洗
从上面的数据来看,我们明显发现存在缺失值,异常值,并不能马上就开始进行数据分析。这些数据都会使我们的分析结果产生偏差。
在分析之前,需要进行子集选择、缺失数据补充、异常值处理、数据类型转换等多个步骤。这些都属于数据清理的范畴。 在数据分析中,通常有多达60%的时间是花在数据清洗中的。通常的清洗步骤有以下几步:
• 选择子集
• 列名重命名
• 缺失数据处理
• 数据类型转换
• 数据排序
• 异常值处理
这些步骤有些不是一步就能完成的,可能需要重复操作。
现在开始对药店销售数据进行数据清洗。
1)选择子集
药店销售数据中,项目较少,选择子集可以忽略,我们从列名重命名开始。
2)列名重命名
销售数据集,购药时间显示为销售时间更为合理,我们先把这个项目名称做一下变更。
nameChangeDict = {
'购药时间':'销售时间'}
#参数inplace=True表示覆盖元数据集
df.rename(columns = nameChangeDict,inplace=True)
df.head(5)
3)缺失值处理