数据分析的基本过程分为五个部分:提出问题、理解数据、数据清洗、构建模型、数据可视化。下面我以前四部分为基础,对一个销售数据进行分析。

1 提出问题

分析目标:根据以下三个业务指标分析医院的销售情况:月均消费次数、月均消费金额、客单价。

首先导入数据分析包和数据文件

import pandas as pd

fileNameStr='./朝阳医院2018年销售数据.xlsx'

xls=pd.ExcelFile(fileNameStr,dtype='object')

salesDf=xls.parse('Sheet1',dtype='object')

2 理解数据

描述数据,基本了解数据情况。

在这里,我们要了解,需要哪些指标和如何达成分析的目标。

1.月均消费次数=一年的消费次数/月份

一年的消费次数=有消费记录数据的总和(同一个人在一天内只计一次消费)

2.月均消费金额=总实收金额/月份

3.客单价=总消费金额/总消费次数

3 数据清洗

1 列表重命名

colNameDict={'购药时间':'销售时间'}

salesDf.rename(columns=colNameDict,inplace=True)

salesDf.head()

2 缺失数据处理

3 数据类型转换

3.1 字符串转换为数值

salesDf['销售数量']=salesDf['销售数量'].astype('float')

salesDf['应收金额']=salesDf['应收金额'].astype('float')

salesDf['实收金额']=salesDf['实收金额'].astype('float')

salesDf.dtypes

3.2 字符串转换为日期类型

定义函数

def splitSaletime(timeColSer):

timeList=[]

for value in timeColSer:

dateStr=value.split(' ')[0]

timeList.append(dateStr)

timeSer=pd.Series(timeList)

return timeSer

分割字符串,获取销售时间

timeSer=salesDf.loc[:,'销售时间']

dateSer=splitSaletime(timeSer)

salesDf.loc[:,'销售时间']=dateSer #修改销售时间

salesDf.head()

转换为日期格式

salesDf.loc[:,'销售时间']=pd.to_datetime(salesDf.loc[:,'销售时间'],

format='%Y-%m-%d',

errors='coerce')

删除转换日期格式中的空值

salesDf=salesDf.dropna(subset=['销售时间','社保卡号'],how='any')

4 数据排序

把数据按销售时间进行升序排列

salesDf=salesDf.sort_values(by='销售时间',ascending=True)

salesDf.head(3)

更新排序后的行号

salesDf=salesDf.reset_index(drop=True)

salesDf.head()

5 异常值处理

salesDf.describe()

我们发现销售数量和实收金额为负数,这在现实中是不合理的,所以我们需要筛选出正数来分析。

querySer=salesDf.loc[:,'销售数量']>0

#应用查询条件

print('before',salesDf.shape)

salesDf=salesDf.loc[querySer,:]

print('after',salesDf.shape)

4 构建模型

在第二步理解数据中,我们了解到同一天中,只计算一次消费次数,这里要对消费次数进行去重。

#同一天去重

kpi1_Df=salesDf.drop_duplicates(subset=['销售时间','社保卡号'])

totalI=kpi1_Df.shape[0]

print('总销售次数',totalI)

获得总消费次数是5342次。接着,来计算月份数。先按销售时间做升序,并对行号重命名。

kpi1_Df=kpi1_Df.sort_values(by='销售时间',ascending=True)

kpi1_Df=kpi1_Df.reset_index(drop=True)

kpi1_Df.head()

下面,获取最大和最小的时间值范围,计算出月份数为6.

startTime=kpi1_Df.loc[0,'销售时间']

endTime=kpi1_Df.loc[totalI-1,'销售时间']

daysI=(endTime-startTime).days

monthsI=daysI//30

print('月份数',monthsI)

接着,计算出第一个业务指标月均消费次数为890.

kpi1_I=totalI//monthsI

print('业务指标1:月均消费次数',kpi1_I)

第二个业务指标月均消费金额如下。

第三个业务指标客单价。

到这里,我们通过python一步步的获取到了我们想要的业务指标。根据三个数据,我们来做进一步的思考。这家医院如何才能提高销售额呢?可以从三方面执行:

提高每月消费次数:可以设置一些促销活动优化购物体验,从而提升顾客再次购买的欲望。

提高每月消费金额:可以根据病人的经济情况,设定不同的药品。如条件好的,就推荐用一些效果很好的药品。如条件一般,在不降低疗效的情况下,选用一些性价比更高的药品。

提高客单价:丰富药品的品种,给客户更多的选择。

销售数据的业务指标有相似之处,我们也可以举一反三,拓展到其他销售数据,比如从复购率和单价开始。有了数据分析的指标,还需要通过可视化展示出来。下一讲,我们讨论数据可视化。

python分析每月销售数据_如何用Python分析销售数据相关推荐

  1. python情绪分析的意义_如何用Python和R对故事情节做情绪分析?

    想知道一部没看过的影视剧能否符合自己口味,却又怕被剧透?没关系,我们可以用情绪分析来了解故事情节是否足够跌宕起伏.本文一步步教你如何用Python和R轻松愉快完成文本情绪分析.一起来试试吧. 烦恼 追 ...

  2. 用python画机器猫代码_如何用Python画一只机器猫?| 原力计划

    原标题:如何用Python画一只机器猫?| 原力计划 作者 | 人邮异步社区 责编 | 胡巍巍 出品 | CSDN博客 自信心是成功的源泉,对刚入门编程行业的初级程序员来说,多敲代码多做项目就是构建自 ...

  3. python 读取excel图片_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

  4. 怎么用python读取excel图_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

  5. python编程代码画画_如何用python编写一个绘制马赛克图像的自写程序

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 这篇教程将会展示如何用python的图形化包"Pygame"和基础的文件I/O来创建一 ...

  6. python 文本翻译 项目_如何用python批量翻译文本?

    首先,看一下百度翻译的官方api文档. http://api.fanyi.baidu.com/api/trans/product/apidoc # coding=utf-8 #authority:bi ...

  7. python交互界面数据分析_如何用 Python 和 Streamlit 做交互式数据分析产品?

    「本文参与少数派 2019 年度征文 + 效率有心得」 不用学前端编程,你就能用 Python 简单高效写出漂亮的交互式 Web 应用,将你的数据分析成果立即展示给团队和客户. 痛点 从我开始折腾数据 ...

  8. python 登陆淘宝_如何用 Python 自动登录淘宝并保存登录信息?

    原标题:如何用 Python 自动登录淘宝并保存登录信息? 作者 | 猪哥 责编 | 伍杏玲 前段时间时间为大家讲解了如何使用requests库模拟登录淘宝,而今天我们将对该功能进行丰富.所以我们把之 ...

  9. python 矩阵运算 for循环_如何用 Python 科学计算中的矩阵替代循环

    展开全部 因为在Mathematica中使用循环确实是低效的.32313133353236313431303231363533e78988e69d8331333361313961..... 深层次的原 ...

  10. python搭建自动化测试平台_如何用python语言搭建自动化测试环境

    原标题:如何用python语言搭建自动化测试环境 技术分享:基于Python语言的Web自动化测试环境搭建 近期发现很多初学者在学习自动化的过程当中,在环境安装环节总是出现问题,所以详细的出一篇环境搭 ...

最新文章

  1. 给gridview动态生成radiobutton添加OnCheckedChanged监听函数
  2. 为什么计算机桌面图标不见了,电脑桌面图标都没了,详细教您电脑桌面图标都没了怎么恢复...
  3. 蓝桥杯java第八届第六题--最大公共子串
  4. 百题大冲关系列课程更新啦!这次是 Golang
  5. 如何判断对象是否存活之引用计数发
  6. jQuery课程介绍、Query的介绍、Query初次体验、jQuery再次体验、jQuery中的顶级对象
  7. 别等了,全面「远程办公」凉了
  8. idea怎么把代码放到git_在IDEA中如何初始化Git,把项目推送到Git上
  9. python:找出两个列表中相同和不同的元素(使用推导式)
  10. solve mass matrix in matlab
  11. C#多线程学习(三) 生产者和消费者 (转载系列)——继续搜索引擎研究
  12. POJ 2828 Buy Tickets(单点更新) 详细题解和思路
  13. jaxb xml 生成 java_java-如何使用JAXB定制XML导出
  14. vim 基础学习之插入模式
  15. 前端基础 IE浏览器渲染-重置浏览器默认样式
  16. php二维码与电子名片
  17. win10如何找计算机管理员密码,win10怎么修改administrator账户密码 win10修改管理员账户密码方法...
  18. 【5G系列】RLC (Radio Link Control )协议详解
  19. Mqtt通信协议详解
  20. Windows系统盘空间大清理

热门文章

  1. 一、 Hbase特性 3v特性,Volume(量级) Varity(种类) Velocity(速度)
  2. PC端页面适应不同的分辨率的方法
  3. Golang里的AES加密、解密
  4. 计算机的6种典型应用领域,人工智能已经广泛应用到许多领域,其典型的应用包括这些...
  5. 彩色证件照片常用的红色、蓝色背景颜色值 1
  6. fedroa设置启动快捷键
  7. Mac m1 python软件环境安装配置
  8. TextView 字体中间加 横划线
  9. c语言的源程序一行可以书写多个语句,C语言 选择题(最全版)
  10. 如何增加微信阅读量,新手公众号如何增加阅读量