热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

importpandasaspdimportnumpyasnp一、提出问题从销售数据中分析出以下业务指标:1)月均消费次数2)月均消费金额3)客单价4)消费趋势代码&

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[:,&#39;销售数量&#39;]>=0

print(&#39;删除异常值前:&#39;,data_2.shape,type(xx))

data_2=data_2.loc[xx,:]

print(&#39;删除异常值后:&#39;,data_2.shape)

(6575, 7)

(6532, 7)

代码:data_4.describe()

代码:data_4.head()

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

代码:testList=&#39;2018-06-03 星期五&#39;.split(" ")

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

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

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

代码:def change(line):

new_ine=[]

for i in line:

new_value=i.split(&#39; &#39;)[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[:,&#39;购药时间&#39;]=pd.to_datetime(data_5.ix[:,&#39;购药时间&#39;],

format=&#39;%Y-%m-%d&#39;,

errors=&#39;coerce&#39;)

data_5.dtypes

购药时间 datetime64[ns]

社保卡号 object

商品编码 object

商品名称 object

销售数量 float64

应收金额 float64

实收金额 float64

dtype: object

代码:print(data_5.shape)

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

print(data_6.shape)

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

(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=[&#39;购药时间&#39;, &#39;社保卡号&#39;])

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

代码:kpi1_Df=kpi1_Df.sort_values(by=&#39;购药时间&#39;,

ascending=True)

#重命名行名(index)

kpi1_Df=kpi1_Df.reset_index(drop=True)

totalI=kpi1_Df.shape[0]

totalI

6229

第2步:获取时间范围

#最小时间值

代码:startTime=kpi1_Df.loc[0,&#39;购药时间&#39;]

#最大时间值

代码:endTime=kpi1_Df.loc[totalI-1,&#39;购药时间&#39;]

第3步:计算月份数

#天数

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

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

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

mOnthsI=daysI//30

print(&#39;月份数:&#39;,monthsI)

print(&#39;月份数:&#39;,endTime)

print(&#39;月份数:&#39;,totalI)

月份数: 6

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

月份数: 6229

代码:kpi1_I=totalI // monthsI

print(&#39;业务指标1:月均消费次数=&#39;,kpi1_I)

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

#总消费金额

代码:totalMOneyF=data_8.loc[:,&#39;实收金额&#39;].sum()

#月均消费金额

代码:mOnthMoneyF=totalMoneyF / monthsI

print(&#39;业务指标2:月均消费金额=&#39;,monthMoneyF)

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

代码:pct=totalMoneyF / totalI

print(&#39;客单价:&#39;,pct)

客单价: 48.6771680848

代码:groupDf=data_8

groupDf.index=groupDf[&#39;购药时间&#39;]

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

gb

#最后获得月数据

代码:mounthDf=gb.sum()

mounthDf



推荐阅读
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • java drools5_Java Drools5.1 规则流基础【示例】(中)
    五、规则文件及规则流EduInfoRule.drl:packagemyrules;importsample.Employ;ruleBachelorruleflow-group ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文详细介绍了Python中正则表达式和re模块的使用方法。首先解释了转义符的作用,以及如何在字符串中包含特殊字符。然后介绍了re模块的功能和常用方法。通过学习本文,读者可以掌握正则表达式的基本概念和使用技巧,进一步提高Python编程能力。 ... [详细]
  • 原文链接:Python:获取“3年前的今天”的日期时间Python:getdatetimefor3yearsagotoday在Python中,如何获取3年前的今天的datetime ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
author-avatar
孤鹜1101
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有