import pandas as pd

import numpy as np

一、提出问题

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

1)月均消费次数2)月均消费金额3)客单价4)消费趋势

代码:FileName="朝阳医院2018年销售数据.xlsx"

whole_data =pd.ExcelFile(FileName,dtype='object')

data=whole_data.parse("Sheet1", dtype='object')

data_4.ix[:,"销售数量"]=data_4.ix[:,"销售数量"].astype("float")

data_4.ix[:,"实收金额"]=data_4.ix[:,"实收金额"].astype("float")

data_4.ix[:,"应收金额"]=data_4.ix[:,"应收金额"].astype("float")

data_4.dtypes

购药时间 object

社保卡号 object

商品编码 object

商品名称 object

销售数量 float64

应收金额 float64

实收金额 float64

dtype: object

二、数据清洗

(一)删除缺失值

代码:data_2=data.dropna()

data_2.head()

(二)删除销售数量<=0的行

#法一

代码:xx=data_2.ix[:,"销售数量"]>0

print(data_2.shape)

data_4=data_2.ix[xx,:]

print(data_4.shape)

#法二

代码:xx=data_2.loc[:,'销售数量']>=0

print('删除异常值前:',data_2.shape,type(xx))

data_2=data_2.loc[xx,:]

print('删除异常值后:',data_2.shape)

(6575, 7)

(6532, 7)

代码:data_4.describe()

代码:data_4.head()

(三)将”购药时间”一列只留下具体日期

代码:testList='2018-06-03 星期五'.split(" ")

定义函数:分割销售日期,获取销售日期

输入:line 销售时间这一列,是个Series数据类型

输出:分割后的时间,返回也是个Series数据类型

代码:def change(line):

new_ine=[]

for i in line:

new_value=i.split(' ')[0]

newline.append(new_value)

new_series=pd.Series(newline)

return new_series

change_firstline=data_4.ix[:,"购药时间"]

由于字符串在转换为日期数据类型过程中,如不符合上述代码规则的将会产生缺失值,因此要将缺失值删去。

代码:data_4.ix[:,0]=change_newline

v=data_4.ix[:,0]

其中v有一部分缺失值故要将其删除

#vv=data_4.ix[v.isnull()==True,"购药时间"]

代码:data_5=data_4[v.isnull()==False]#只保留无缺失值的数据

print(data_4.shape)

print(data_5.shape)

(6532, 7)

(6489, 7)

(四)转换数据类型

#转换数据类型

代码:data_5.loc[:,'购药时间']=pd.to_datetime(data_5.ix[:,'购药时间'],

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

errors='coerce')

data_5.dtypes

购药时间 datetime64[ns]

社保卡号 object

商品编码 object

商品名称 object

销售数量 float64

应收金额 float64

实收金额 float64

dtype: object

代码:print(data_5.shape)

data_6=data_5.dropna(subset=['购药时间','社保卡号'],how='any')

print(data_6.shape)

'''转换日期过程中不符合日期格式的数值会被转换为空值,这里删除列(销售时间,社保卡号)中为空的行'''

(6489, 7)

(6466, 7)

代码:data_6.describe()

(五)按时间顺序排序

代码:data_7=data_6.sort_values(by="购药时间",

ascending= True)

#按购药时间排序,ascending True为升序

data_7.head()

代码:data_7.dtypes

购药时间 datetime64[ns]

社保卡号 object

商品编码 object

商品名称 object

销售数量 float64

应收金额 float64

实收金额 float64

dtype: object

(六)重命名index

代码:data_8=data_7.reset_index(drop=True)

data_8.head()

三、构建模型

代码:kpi1_Df=data_8.drop_duplicates(subset=['购药时间', '社保卡号'])

第1步:按销售时间升序排序

代码:kpi1_Df=kpi1_Df.sort_values(by='购药时间',

ascending=True)

#重命名行名(index)

kpi1_Df=kpi1_Df.reset_index(drop=True)

totalI=kpi1_Df.shape[0]

totalI

6229

第2步:获取时间范围

#最小时间值

代码:startTime=kpi1_Df.loc[0,'购药时间']

#最大时间值

代码:endTime=kpi1_Df.loc[totalI-1,'购药时间']

第3步:计算月份数

#天数

#月份数: 运算符“//”表示取整除

#返回商的整数部分,例如9//2 输出结果是4

代码:daysI=(endTime-startTime).days

monthsI=daysI//30

print('月份数:',monthsI)

print('月份数:',endTime)

print('月份数:',totalI)

月份数: 6

月份数: 2018-07-19 00:00:00

月份数: 6229

代码:kpi1_I=totalI // monthsI

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

业务指标1:月均消费次数= 1038

#总消费金额

代码:totalMoneyF=data_8.loc[:,'实收金额'].sum()

#月均消费金额

代码:monthMoneyF=totalMoneyF / monthsI

print('业务指标2:月均消费金额=',monthMoneyF)

业务指标2:月均消费金额= 50535.0133333

代码:pct=totalMoneyF / totalI

print('客单价:',pct)

客单价: 48.6771680848

代码:groupDf=data_8

groupDf.index=groupDf['购药时间']

gb=groupDf.groupby(groupDf.index.month)

gb

#最后获得月数据

代码:mounthDf=gb.sum()

mounthDf

用python做产出数据分析案例_利用python进行数据分析——医院销售额案例相关推荐

  1. python做一个星座分析_利用python输出星座的方法

    利用python输出星座的方法 发布时间:2020-09-23 12:12:36 来源:亿速云 阅读:84 作者:小新 这篇文章将为大家详细讲解有关利用python输出星座的方法,小编觉得挺实用的,因 ...

  2. python做一个小游戏_利用python做个小游戏

    从本期开始,我们将利用几天的时间用python来做个小游戏,当然,在做小游戏之前,我们必须学会一个做小游戏的第三方库--pygame.可能有人会说,python不擅长或者说不适合用来做游戏,的确是这样 ...

  3. 用python做一个购物车编程_利用python实现简单的循环购物车功能示例代码

    本文主要给大家介绍了关于python实现循环购物车功能的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 示例代码 # -*- coding: utf-8 -*- __author__ = ...

  4. python处理水站的数据_利用Python进行数据分析(一):数据清洗与准备

    b站的小伙伴们大家吼~~ 在b站摸了快四年鱼的菜鸡也想开始做知识分享了,虽然说是分享其实根本目的也是为了督促自己好好学习把QAQ. 从今天开始,我将会在专栏分享我在学习<利用Python进行数据 ...

  5. 利用python进行数据分析 笔记_利用python进行数据分析(O#039;Relly)学习笔记-一团网...

    利用python进行数据分析(O'Relly)学习笔记 1.第一个bug import pandas plot(arrange(10)) #报错name 'plot' is not defined. ...

  6. python输入数组并计算_利用Python进行数据分析——Numpy基础:数组和矢量计算

    利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...

  7. 利用python进行数据分析 笔记_利用python进行数据分析--(阅读笔记一)

    原博文 2016-06-17 23:21 − 以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频 ...

  8. python销售数据分析方法_利用Python进行某单品销售数据分析

    本篇文章将利用Python工具对一份某商品的销售数据进行如下几个方面的分析,结合业务场景,构件常用业务指标,以从销售数据中挖掘出其潜在的商业价值,促进运营.用户消费趋势分析: 用户个体消费分析: 用户 ...

  9. python做作业没头绪_使用Python做作业

    python做作业没头绪 Applying OpenCV and Tesseract to do your math-homework 应用OpenCV和Tesseract进行数学作业 The pos ...

  10. 利用python从网页查找数据_利用Python模拟淘宝的搜索过程并对数据进行可视化分析...

    数据挖掘入门与实战 公众号: datadw 本文讲述如何利用Python模拟淘宝的搜索过程并对搜索结果进行初步的数据可视化分析. 搜索过程的模拟:淘宝的搜索页面有两种形式, 一种形式是, 2019/2 ...

最新文章

  1. mysql 排序取前4_MySQL时间段分组排序后取前10的问题?
  2. ChartDirector资料小结
  3. scum开服务器延迟高怎么办,人渣SCUM卡顿优化方法 人渣SCUM卡顿怎么办
  4. 图解ARP协议(二)ARP攻击原理与实践
  5. 关于可变字符串StringBuffer和String的区别总结
  6. chmod与umask区分命令
  7. 会议通知|2019暑期全国高校Python数据分析与实训课程高级研修班
  8. 下一个十年:练好内功被集成的弹性计算
  9. 火车票放票时间 潜规则
  10. Tony的口胡呼呼(。-ω-)zzz
  11. Inno Setup 为程序创建桌面快捷方式
  12. matlab中升余弦滚降滤波器_升余弦滤波器原理
  13. 车辆身份特征识别引擎
  14. 生信学习——基于R的统计习题(附详细答案解读)
  15. 程序员,隐藏的段子手
  16. 【软件定义汽车】【架构篇】最全整车电子电气E/E架构(含汽车公司)
  17. 华为鸿蒙系统8月开源,华为正式宣布,鸿蒙系统8月开源,任正非却说:优先选用安卓...
  18. 用三种方式安装Nginx
  19. 接口保护ESD防静电二极管选择ESDSRVLC05-4
  20. 1 php方式实现购物车原理,PHP购物车实现的原理

热门文章

  1. Lisp编制的坡度标注_形位公差自动标注的ATUOLISP程序设计(Ⅰ)
  2. 小微企业名录geetest破解验证
  3. 什么ftp扫描工具好用,你所认识的什么ftp扫描工具好用
  4. 笔记本如何正确安装对应显卡驱动
  5. 【论文笔记】Face Anonymization by Manipulating Decoupled Identity Representation
  6. 支持二级汉字的 php 汉字助记码生成
  7. pci总线扫描及pci网卡驱动
  8. exsi rh2288hv5 驱动_华为2288H V5阵列卡驱动下载|
  9. 转载一些Unity插件及资源
  10. 批处理的注释:批处理程序中的多行注释方法