数据分析案例
数据分析的基本步骤包括:
- 提出问题
- 理解数据
- 数据清洗
- 构建模型
- 数据可视化
这次以某医院数据为案例来分析整个数据过程。
1、提出问题
要从销售数据中分析以下业务指标:
1)月均消费次数;
2)月均消费金额;
3)客单价;
4)消费趋势
遇到的问题:在执行这段代码的时候,出现一个问题,那就是一直提示我:
ImportError: No module named 'xlrd'
这时候我通过搜索,分别执行了以下几个命令
pip install xlrd
pip3 install xlrd
conda install xlrd
但我的MAC上一直报错。最后通过谷歌找到了解决方案,链接为:
https://stackoverflow.com/questions/44181328/python-importerror-no-module-named-xlrd-after-installing-xlrd-using-pipstackoverflow.com
我执行了这里面的这段代码
import pip
package_name='xlrd'
pip.main(['install', package_name])
2、数据清洗
- 选择子集
- 列名重命名
- 缺失数据处理
- 数据类型处理
- 数据类型转换
- 数据排序
- 异常值处理
1)选择子集(只选取需要进行分析的数据,本例中不需要)
2)列名重命名
先定义一个字典表明旧列名和新列名的对应关系
inplace=False,数据框本身不会变,而会创建一个改动后新的数据框,默认的inplace是False,inplace=True,数据框本身会改动
3)缺失值处理
缺失值的处理可以用dropna参数的subset做处理,移除指定列为空的数据,其how='any'即在给定的任何一列有缺失值就删除。具体的用法可以参见:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.htmlpandas.pydata.org
在删除前,数据是6578条,删除后,数据是6575条,说明3条数据有缺失销售时间或者社保卡号。
4)数据类型转换
- 字符串转换为数值(浮点型)
- 字符串转换为日期数据类型
5) 数据排序
ascending=True 表示降序排列;ascending=False表示升序排列。
排序后需要重命名行名,使用reset_index,可以将行号修改成从0到n顺序排列的索引值,其中drop = True选项会丢弃原来的索引而设置新的从0开始的索引。
6)异常值处理
通过describe方法获取所有这些列的描述统计信息,排除那些金额数量为0的负数,经过筛选将那些异常值删除。
4、构建模型
业务指标1:月均消费次数=总消费次数/月份数
指标2:月均消费金额=总消费金额/月份数
指标3:客单价=总消费金额/总消费次数
指标4:消费趋势,画图:折线图(待续)
业务指标4: 未完成