2020-12-28 11:18:47 阅读(173)
1、数据分析的目的数据分析是指通过适当的统计分析方法对收集到的大量数据进行分析,提取有用的信息,形成结论,并对数据进行详细研究和总结的过程。在本文中,假设以2018年朝阳医院的销售数据为例,目的是了解2018年朝阳医院的销售情况,需要了解月平均消费次数、月平均消费金额、客户单价、消费趋势等几个业务指标。2、数据分析的基本过程包括:数据获取、数据清洗、模型构建、数据可视化和消费趋势。2.1获取数据Excel中数据部分的截图:先导入包,再读取文件,读取时用object读取,防止一些数据无法读取:In[1]:importpandasaspdIn[2]:#读取数据(最好使用object类型) ...:data=pd.read_excel("2018年朝阳医院销售数据.xlsx",dtype="object")In[3]:#修改为DataFrame格式 ...:dataDF=pd.DataFrame(data)In[4]:dataDF.head()Out[4]: 购药时间 社保卡号 商品编码 销售商品名称的数量 应收金额 实收金额0 2018-01-01星期五 001616528 236701 强VC银翘片 6 82.8 691 2018-01-02星期六 001616528 236701 清热解毒口服液 1 28 24.642 2018-01-06星期三 0012602828 236701 感康 2 16.8 153 2018-01-11星期一 0010070343428 236701 三九感冒灵 1 28 284 2018-01-15星期五 00101554328 236701 三九感冒灵 8 224 208查看In[5]这些基本信息:#查看数据的形状,即几行几列 ...:dataDF.shapeOut[5]:(6578,7)In[6]:#查看索引 ...:dataDF.indexOut[6]:RangeIndex(start=0,stop=6578,step=1)In[7]:#查看每列列表头的内容 ...:dataDF.columnsOut[7]:Index(['购药时间','社保卡号','商品编码','商品名称','销售量','应收金额','实收金额'],dtype='object')In[8]:#查看每列数据统计数量 ...:dataDF.count()Out[8]:购药时间 6576社保卡号 6576商品编码 6577商品名称 6577销售数量 6577应收金额 6577实收金额 6577dtype:int64共有6578行7列数据,但“药品购买时间”和“社会保障卡号”两列只有6576个数据,“商品代码”到“实收金额”这两列只有6577个数据,这意味着数据缺失值,可以推断数据缺失值,除了“药品购买时间”和“社会保障卡号”两列各有一个缺失数据,这些缺失数据需要在以下步骤中进一步处理。2.2数据清洗数据清洗过程包括:选择子集、列名重命名、数据处理缺失、数据类型转换、数据排序及异常值处理2.2.1在我们获得的数据中选择子集,数据量可能非常大,不是每个列都有价值需要分析。此时,我们需要从整个数据中选择合适的子集进行分析,以便从数据中获得最大的价值。在这种情况下,不需要选择子集,这一步暂时可以忽略。2.2.在数据分析过程中,一些列和数据容易混淆或模棱两可,不利于数据分析。此时,需要将列替换为易于理解的名称,可以通过rename函数实现:In[9]:#使用rename函数,把"购药时间"改为"销售时间" ...:dataDF.rename(columns={"购药时间":"销售时间"},inplace=True) ...:dataDF.columnsOut[9]: Index(['销售时间', '社保卡号', '商品编码', '商品名称', '销售量', '应收金额', '实收金额'], dtype='object')2.2.在缺失数据处理获得的数据中很可能存在缺失值,通过查看基本信息,可以推断“购药时间”和“社保卡号”存在缺失值。如果不处理这些缺失值,会干扰以下数据分析结果。缺失数据的常用处理方法是删除包含缺失数据的记录或使用算法来补充缺失数据。为方便起见,dropna函数直接用于删除缺失的数据,具体如下:In[10]:#在删除缺失值之前 ...:dataDF.shapeOut[10]:(6578,7)In[11]:#使用dropna函数删除缺失值 ...:dataDF=dataDF.dropna()In[12]:#删除缺失值后 ...:dataDF.shapeOut[12]:(6575,7)2.2.在导入数据时,4数据类型的转换是为了防止导入不进来,所有数据都是object类型,但在实际数据分析过程中,“销售数量”、“应收金额”和“实收金额”需要浮点类型(float)数据、“销售时间”需要改为时间格式,因此需要转换数据类型。可以将astype()函数转换为浮点数据:In[13]:#将字符串转换为浮点数据 ...:dataDF["销售数量"]=dataDF["销售数量"].astype("f8") ...:dataDF["应收金额"]=dataDF["应收金额"].astype("f8") ...:dataDF["实收金额"]=dataDF["实收金额"].astype("f8") ...:dataDF.dtypesOut[13]:销售时间 object社保卡号码 object商品编码 object商品名称 object销售数量 float64应收金额 float64实收金额 64dtypefloat64dtype:在“销售时间”这一列数据中,object存在星期这样的数据,但是在数据分析过程中不需要使用,所以要用split函数来划分销售时间列的中日期和周期,分割后的时间,Series数据类型返回:In[15]:#星期去除定义函数 ...:defsplitsaletime(timeColser): ...: timelist=[] ...: fortintimeColser: ...: timelist.append(t.split("")[0]) #[0]表示选定的分片,这意味着切割后选择第一个分片 ...: timeser=pd.Series(timelist) #将列表转换为一维数据Series类型 ...: returntimeser ...:In[16]:#获取"销售时间"这一列数据 ...:t=dataDF.loc[:,"销售时间"] ...:#调用函数去除周,获取日期 ...:timeser=splitsaletime(t) ...:#修改"销售时间"这一列日期 ...:dataDF.loc[:,"销售时间"]=timeser ...:dataDF.head()Out[16]: 销售时间 社保卡号 商品编码 商品名称 销售数量 应收金额 实收金额0 2018-01-01 001616528 236701 强大的VC银翘片 6.0 82.8 69.001 2018-01-02 001616528 236701 清热解毒口服液 1.0 28.0 24.642 2018-01-06 0012602828 236701 感康 2.0 16.8 15.003 2018-01-11 0010070343428 236701 三九感冒灵 1.0 28.0 28.004 2018-01-15 00101554328 236701 三九感冒灵 8.0 224.0 然后将切割后的日期转换为时间格式,以下数据统计方便:In[17]:#字符串转日期 ...:#errors='coerce'如果原始数据不符合日期格式,则转换值为Nat ...:dataDF.loc[:,"销售时间"]=
以上就是关于分析案例丨朝阳医院在2018年里的销售情况的相关介绍,更多分析案例丨朝阳医院在2018年里的销售情况相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对分析案例丨朝阳医院在2018年里的销售情况有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一