Python医药数据分析 python 医学数据分析_数据


数据分析案例

数据分析的基本步骤包括:

  • 提出问题
  • 理解数据
  • 数据清洗
  • 构建模型
  • 数据可视化

这次以某医院数据为案例来分析整个数据过程。

1、提出问题

要从销售数据中分析以下业务指标:

1)月均消费次数;

2)月均消费金额;

3)客单价;

4)消费趋势


Python医药数据分析 python 医学数据分析_Python医药数据分析_02


遇到的问题:在执行这段代码的时候,出现一个问题,那就是一直提示我:


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)选择子集(只选取需要进行分析的数据,本例中不需要)


Python医药数据分析 python 医学数据分析_缺失值_03


2)列名重命名

先定义一个字典表明旧列名和新列名的对应关系

inplace=False,数据框本身不会变,而会创建一个改动后新的数据框,默认的inplace是False,inplace=True,数据框本身会改动


Python医药数据分析 python 医学数据分析_数据_04


3)缺失值处理

缺失值的处理可以用dropna参数的subset做处理,移除指定列为空的数据,其how='any'即在给定的任何一列有缺失值就删除。具体的用法可以参见:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.htmlpandas.pydata.org


Python医药数据分析 python 医学数据分析_缺失值_05


在删除前,数据是6578条,删除后,数据是6575条,说明3条数据有缺失销售时间或者社保卡号。

4)数据类型转换

  • 字符串转换为数值(浮点型)


Python医药数据分析 python 医学数据分析_缺失值_06


  • 字符串转换为日期数据类型


Python医药数据分析 python 医学数据分析_数据_07


Python医药数据分析 python 医学数据分析_数据_08


Python医药数据分析 python 医学数据分析_缺失值_09


5) 数据排序

ascending=True 表示降序排列;ascending=False表示升序排列。

排序后需要重命名行名,使用reset_index,可以将行号修改成从0到n顺序排列的索引值,其中drop = True选项会丢弃原来的索引而设置新的从0开始的索引。


Python医药数据分析 python 医学数据分析_缺失值_10


Python医药数据分析 python 医学数据分析_python 画图底部间隔排列_11


6)异常值处理

通过describe方法获取所有这些列的描述统计信息,排除那些金额数量为0的负数,经过筛选将那些异常值删除。


Python医药数据分析 python 医学数据分析_python 画图底部间隔排列_12


4、构建模型

业务指标1:月均消费次数=总消费次数/月份数

指标2:月均消费金额=总消费金额/月份数

指标3:客单价=总消费金额/总消费次数

指标4:消费趋势,画图:折线图(待续)


Python医药数据分析 python 医学数据分析_重命名_13


Python医药数据分析 python 医学数据分析_python 画图底部间隔排列_14


Python医药数据分析 python 医学数据分析_缺失值_15


业务指标4: 未完成